Как использовать mysqlimport для чтения в результате mysqldump --databases
Я успешно свалил всю базу данных MySQL, используя
mysqldump --databases
генерирует хороший .txt файл. Однако я не могу понять, как прочитать весь файл обратно в MySQL за один раз; Кажется, что mysqlimport хочет только одну таблицу за раз.
Ответы
Ответ 1
Когда вы сгенерировали некоторый файл (скажем 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
(Он должен быть даже быстрее, поскольку вы не используете временный файл, который находится на диске)
Ответ 2
Я делаю это часто:
mysqldump -u username -p databasename > dump.sql
Для загрузки:
mysql -u username -p targetdatabasename < dump.sql
Переключатель -p
инструктирует базу данных запросить ввести пароль для пользователя username
после запуска команды.
Возможно, ваш вопрос повторяется.
Ответ 3
Вы можете просто использовать "источник" из клиента mysql:
source dumpfile.sql
Или поставьте непосредственно из командной строки:
mysql -u user -p password database < source dumpfile.sql
Это связано с тем, что результат mysqldump - это просто файл SQL, который можно запустить с помощью mysql, как обычно.