Проблема с восстановлением базы данных MySQL - вопрос mysqldump

Я сделал резервную копию my_database как это:

mysqldump --add-drop-database --databases 
          --user=my_username --password=my_password my_database > backup.sql

Затем я полностью удалил базу данных и попытался восстановить ее так:

mysql --user=my_username --password=my_password my_database < backup.sql

Я получил следующую ошибку:

ERROR 1049 (42000): Unknown database 'my_database'

Что я делаю неправильно?

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

Дополнительный вопрос: возможно ли прочитать пароль из файла, а не ввести его в командной строке?

2 ответа

Решение

Если я правильно понимаю, что вы делаете, вам не нужен аргумент "database" для вызова "mysql", так как дамп должен содержать create database заявления.

Что касается бонуса: вы хотите --defaults-extra-file вариант

mysqldump команда не включает create database заявление в своем выводе. Вам нужно создать my_database базы данных перед запуском второй команды.

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