Как использовать mysqlimport для чтения в результате mysqldump --databases

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

mysqldump --databases

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

3 ответа

Решение

Когда вы сгенерировали какой-то файл (скажем, 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

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

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

mysqldump -u username -p databasename > dump.sql

Загрузить:

mysql -u username -p  targetdatabasename < dump.sql

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

Ваш вопрос, вероятно, дубликат, хотя.

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

source dumpfile.sql

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

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

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

Другие вопросы по тегам