2013-10-27 3 views
0

Я начинаю внешний сервер MySQL прагматично, следуя путиИмпорт/экспорт базы данных с внешнего сервера MySQL

StartMysqlServer.p = Runtime.getRuntime(). Exec ("сервер/бен/MYSQLD --defaults-файл = сервер /my.ini --standalone --console --basedir = server/");

Теперь я хочу импортировать/экспортировать базу данных, присутствующую в этом запущенном MySQL через java code.i, не знаю, возможно ли это или нет? предложить любой ответ.

ответ

0

Вы, кажется, с помощью Java Runtime для выполнения тех же заявления, вы бы в командной строке, так что импорт и экспорт может быть сделано таким же образом:

Импорт

Runtime.getRuntime().exec(
    "mysql -uusername -ppassword < /path/to/fileToImportFrom.sql"); 

Экспорт

Runtime.getRuntime().exec(
    "mysqldump -uusername -ppassword > /path/to/fileToExportTo.sql"); 

В качестве альтернативы вы можете подключиться к базе данных с помощью драйвера JDBC MySQL и программно вставить данные. Использование API, такого как Spring's JdbcTemplate, делает это менее болезненным (JdbcTemplate tutorial).

+0

Спасибо за ответ, но когда я использую следующий код, тогда процесс выполняется бесконечно. код - Process runtimeProcess; \t \t runtimeProcess = Runtime.getRuntime(). Exec ("mysqldump -uroot -p> D: /fileToExportTo.sql"); \t int processComplete = runtimeProcess.waitFor(); \t if (processComplete == 0) { \t \t System.out.println («Резервное копирование создано успешно»); \t} else { \t \t System.out.println («Не удалось создать резервную копию»); \t} – user2637538

+0

Поскольку вы используете '-p', но не предоставляете пароль, процесс ожидает вашего пароля MySQL. Попробуйте запустить ту же команду в своем терминале, чтобы понять, что я имею в виду. – trf

+0

В соответствии с предложением я изменил свой код, как показано ниже, но он работает в течение бесконечного времени Runtime.getRuntime(). Exec ("mysqldump -u root -p admin> D: /fileToExportTo.sql"); – user2637538

Смежные вопросы