Подтвердить что ты не робот

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

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

mysqldump --databases

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

4b9b3361

Ответ 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, как обычно.