Как использовать 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 как обычно.