@DILYAR

Как сделать копию всех mysql баз данных в отдельные файлы?

Всем привет. Подскажите как сделать копии всех баз в отдельные файлы с названиям этих бд. Как это делается через "Экспорт" в phpmyadmin

В интернете нашел только как сделать общую бд или по отдельности. Хотел бы как-то по отдельности, но при этом всё в автоматическом режиме
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AVKor
В автоматическом режиме это делается написанием скрипта на bash. Получить список БД -> циклом обойти весь список и сделать для каждой свой дамп в отдельный файл с соответствующим названием.
Ответ написан
@daniil14056
Не совсем понял что значит
В интернете нашел только как сделать общую бд или по отдельности

и
Хотел бы как-то по отдельности

Но вообще вполне просто (пароль сразу после -p)
в консоли самой mysql: mysql> LOCK TABLES base_name.table_name READ;
в консоли cmd: C:\MySql\bin>mysqldump -uПользователь -pПароль и bd_name table_name > file_table.sql
потом разблокировать в mysql mysql> UNBLOCK TABLES

Ну и можно составить цикл по нужным таблицам передать список их имен, и по каждому имени пройтись, создавая для каждой таблице одноименный файл sql.
Можно составить просто файл со списком таблиц по строкам, затем читать его и циклом проходить их, можно думаю в батнике но не знаю там синтаксиса.
// на JAVE как то-так, думаю вполне понятно
public class Export{
public static void main(String []arg){
String tables[];
if(args.length==0)
  tables =new Array(){"table1","table2","table3"};
else{
    tables =new String[args.length];
     System.copyarray(tables,0,args,0,args.length);
}
 for( table : tables){
      Process proc = Runtime.getRuntime().exec("cmd  C:\MySql\bin>mysqldump -uПользователь -pПароль и bd_name "+table+" > file_"+table+".sql");
   }
}}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы