Использую в своей работе самописный скрипт для резервного копирования баз MySQL. Для бекапа используются следующие параметры:
MYSQL_PARAM="--add-drop-table --user=$mysql_user --password=$mysql_passwd --databases --ignore-table=mysql.event"При выполнении скрипта на консоль выводится сообщение:«Warning: Using a password on the command line interface can be insecure.»
Переменные $mysql_user и $mysql_passwd в скрипте записаны простым текстом. Это не очень хорошо. Начиная, если не ошибаюсь, с версии MySQL 5.6 можно использовать mysql_config_editor — MySQL Configuration Utility.
mysql_config_editor — храненит учетные данные аутентификации в зашифрованном файле с именем ‘.mylogin.cnf’. Файл может быть прочитан позже клиентскими программами MySQL для получения учетных данных аутентификации для соединения с сервером MySQL. Файл располагается в домашней директории пользователя. При использовании утилиты необходимо задать профиль и имя пользователя с паролем. Профиль в дальнейшем будет использоваться при подключении к MySQL
Приведу пример для пользователя root и профилем DailyBackup
mysql_config_editor set --login-path=DailyBackup --host=localhost --user=root --passwordПри выполнении данной команды будет запрошен пароль. После вводы пароля, профиль будет записан и его можно будет использовать.
Пример:
mysql --login-path=DailyBackup «команда»Если при выполнении данной команды вы получите ошибку:
«ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)»И вы уверены, что пароль верный, то возможно надо исключить спец. символы в пароле. У меня не заработало с символами «*» и «#»
Обратите внимание, что параметр «--login-path=» должен стоять самым первым.
Мой скрипт был изменен, использую теперь следующие параметры:
MYSQL_PARAM="--login-path=DailyBackup --add-drop-table --databases --ignore-table=mysql.event"Переменные, содержащие логин и пароль из скрипта убрал.
При выполнении скрипта на консоль НЕ выводится сообщение:«Warning: Using a password on the command line interface can be insecure.»
