При создании резервной копии mysql зачастую требуется обращаться к серверу MySQL с установленным паролем на пользователя.
мы можем передать пароль и имя пользователя в параметрах -u и -p соотвественно
1 | mysqldump -u [user] -p[password] [имя базы] |
При этом, мы получаем следующее предупреждение
1 | mysql: [Warning] Using a password on the command line interface can be insecure. |
Использование mysqldump без запроса пароля
Для того чтобы использовать mysqldump без запроса пароля, необходимо создать файл ~/.my.cnf с правами 600.
1 2 3 | touch ~/.my.cnf chmod 600 ~/.my.cnf nano ~/.my.cnf |
Добавьте в этот файл следующие строки:
1 2 3 | [mysqldump] user=[пользователь] password=[пароль] |
После этого вы можете использовать команду mysqldump, и пароль будет взят из файла ~/.my.cnf.
1 | mysqldump [BD_NAME] > [FILE_NAME].sql |
Чтобы использовать пароль из файла ~/.my.cnf, вы НЕ должны использовать аргумент -p при выполнении команды mysqldump.
Использование пользовательского пути для файла
Если вы хотите хранить файл в другом месте, вы можете указать путь с помощью флага --defaults-file. Пример:
1 | mysqldump --defaults-file=/path-to/.my.cnf my_app > my_backup.sql |
Флаг --defaults-file должен быть первым аргументом, передаваемым mysqldump.