Назад | Перейти на главную страницу

Сохраните пароль клиента MySQL или настройте аутентификацию без пароля

Я использую клиент командной строки mysql, и мне не нужно вводить пароль каждый раз при запуске клиента. Какие у меня варианты?

Создайте файл с именем .my.cnf в вашем домашнем каталоге, который выглядит так. Убедитесь, что права доступа к файловой системе установлены таким образом, что только владелец может их прочитать (0600).

[client]
host     = localhost
user     = username.
password = thepassword
socket   = /var/run/mysqld/mysqld.sock
#database = mysql

Поскольку вы также отметили свой вопрос как mysqldump, вам следует взглянуть на этот вопрос.

Использование mysqldump в задании cron без пароля root

Обновление (2016-06-29) Если вы используете mysql 5.6.6 или выше, вы должны посмотреть на mysql_config_editor инструмент, позволяющий хранить учетные данные в зашифрованном файле. Благодаря Джованни за то, что сказал мне об этом.

Вы можете использовать mysql_config_editor утилита для хранения учетных данных аутентификации в зашифрованном файле пути входа с именем .mylogin.cnf.

Чтобы создать новый набор учетных данных, выполните:

mysql_config_editor set --host=db.host.org --user=dbuser --password

и введите свой пароль, когда будет предложено.

Это сохранит ваши учетные данные для аутентификации по умолчанию client путь входа в систему.

Вы можете сохранить несколько учетных данных для аутентификации, указав другой --login-path вариант:

mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password

По умолчанию mysql клиент читает [client] и [mysql] группы из других файлов параметров, поэтому он также считывает их из файла пути входа в систему. С --login-path опция, клиентские программы дополнительно считывают именованный путь входа в систему из файла пути входа в систему. Группы опций, считываемые из других файлов опций, остаются прежними. Рассмотрим эту команду:

mysql --login-path=db2

В mysql клиент читает [client] и [mysql] из других файлов опций и [client], [mysql], и [mypath] из файла пути входа.

Чтобы распечатать всю информацию, хранящуюся в файле конфигурации, выполните:

mysql_config_editor print --all=true

Более подробную информацию об утилите можно найти на сайте "mysql_config_editor - Утилита настройки MySQL".

Мы не должны делать вид, что .mylogin.cnf вообще безопасно, так как я могу использовать my_print_defaults -s [use your login-path] чтобы этот пароль отображался в виде обычного текста. Вот почему MariaDB не поддерживает подход «безопасность через неясность».

Есть другой способ, ортогональный упомянутым выше методам, но это может быть угрозой безопасности, если кто-то еще наблюдает за вашим монитором, ИЛИ если вы сохраняете свою историю.

Тем не менее, это вариант, который предотвратит появление запроса, и тот, который я использую в выбрасываемых образах докеров и тому подобном ....

mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.

Вам не будет предложено, вы можете установить временный псевдоним в оболочке, если хотите.

Используйте с осторожностью.

mysql Ver 14.14 Distrib 5.5.61-38.13, для debian-linux-gnu (x86_64) с использованием readline 5.1