Я использую клиент командной строки 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 Configuration Utility" .
Мы не должны притворяться, что .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