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

Использование пользователей mysqldump и базы данных

Я пытаюсь собрать все параметры, которые мне нужны для mysqldump, чтобы создать все, что используется моей базой данных приложений, в один script. Сюда входит сама база данных и все пользователи базы данных/пароли/привилегии.

Я все понял, за исключением части пользователя... вот что я сейчас использую:

mysqldump -h host -u root -p \
    --add-drop-database --routines -B database_name > backup.sql

Итак, что мне не хватает?

4b9b3361

Ответ 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/

Мои извинения за шум на доске, но я решил, что оставил бы пост, если кто-либо другой будет иметь такое же недоразумение.