Как использовать mysqlimport для чтения в результате mysqldump --databases - PullRequest
23 голосов
/ 19 февраля 2010

Я успешно выгрузил всю базу данных MySQL, используя

mysqldump --databases

, создав хороший файл .txt.Тем не менее, я не вижу, как прочитать весь файл обратно в MySQL за один раз;mysqlimport, кажется, хочет только одну таблицу за один раз.

Ответы [ 3 ]

54 голосов
/ 19 февраля 2010

Когда вы сгенерировали какой-то файл (скажем, db-dump.sql) с помощью mysqldump, вы можете импортировать его в другую базу данных с помощью команды mysql:

mysql --user=XXX --password=XXX --host=YOUR_HOST DATABASE_NAME < db-dump.sql


И, если вы не хотите, чтобы пароль появлялся в команде, вы можете использовать:

mysql --user=XXX -p --host=YOUR_HOST DATABASE_NAME < db-dump.sql


В качестве идентификатора, если вы хотите скопировать одну БД в другую, вам не нужно использовать файл, и вы можете просто напрямую направить вывод mysqldump в mysql:

mysqldump --user=XXX --password=XXX --host=SOURCE_HOST SOURCE_DB | mysql --user=XXX --password=XXX --host=DESTINATION_HOST DESTINATION_DB

(Это должно быть даже быстрее, поскольку вы не используете временный файл, который находится на диске)

14 голосов
/ 19 февраля 2010

Я делаю это часто:

mysqldump -u username -p databasename > dump.sql

Для загрузки:

mysql -u username -p  targetdatabasename < dump.sql

Переключатель -p дает команду базе данных предложить вам ввести пароль для пользователя username один разкоманда запускается.

Ваш вопрос, возможно, повторяется.

6 голосов
/ 19 февраля 2010

Вы можете просто использовать 'source' из клиента mysql:

source dumpfile.sql

Или поставьте напрямую из командной строки:

mysql -u user -p password database < source dumpfile.sql

Это потому, что результатом mysqldump является просто файл SQL, который можно запустить через mysql как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...