Использование пользователей mysqldump и базы данных
Я пытаюсь собрать все параметры, которые мне нужны для mysqldump, чтобы создать все, что используется моей базой данных приложений, в один script. Сюда входит сама база данных и все пользователи базы данных/пароли/привилегии.
Я все понял, за исключением части пользователя... вот что я сейчас использую:
mysqldump -h host -u root -p \
--add-drop-database --routines -B database_name > backup.sql
Итак, что мне не хватает?
Ответы
Ответ 1
Пользователи базы данных/пароли/привилегии хранятся в базе данных mysql
и не будут сбрасываться с помощью команды dump. Вам также придется добавить эту базу данных в список DB для дампа:
mysqldump ... --routines --databases database_name mysql > backup.sql
или просто свалить все:
mysqldump ... --routines --all-databases > backup.sql
Ответ 2
При сбросе базы данных mysql не забывайте:
--flush-privileges Emit a FLUSH PRIVILEGES statement after dumping the mysql
database. This option should be used any time the dump
contains the mysql database and any other database that
depends on the data in the mysql database for proper
restore.
Ответ 3
Итак, у меня было фундаментальное недоразумение. Пользователи не привязаны к базе данных, но скорее созданы на уровне сервера.
Вы можете просмотреть всех существующих пользователей со следующим запросом:
SELECT * FROM mysql.user;
Зная это, довольно очевидно, что mysqldump ничего не должен делать с пользователями. Однако, если вам нужен ответ на экспорт/импорт пользователей и perms, я предлагаю вам проверить следующую статью - это помогло мне.
http://pento.net/2009/03/12/backing-up-permissions-for-individual-databases/
Мои извинения за шум на доске, но я решил, что оставил бы пост, если кто-либо другой будет иметь такое же недоразумение.