Я использую клиент командной строки 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