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


11

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


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

Ответы:


15

Создайте файл с именем .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 , который позволяет хранить учетные данные в зашифрованном файле. Спасибо Джованни за упоминание об этом мне.


Это здорово работал .. Thanku
Trip

Если ответ решил вашу проблему, нажмите на флажок, чтобы принять его.
Зоредаче

1
Это будет хранить пароль в виде простого текста, что я бы не рекомендовал с точки зрения безопасности.
Джованни

@ Джованни, конечно, хотя mysql_config_editor, который вы упомянули в своем ответе, пока не будет полезен, пока вы не запустите 5.6.6. Сегодня все еще существуют дистрибутивы, которые имеют более старые версии.
Зоредаче

Но как это сделать в Windows?
Wolfpack'08

9

Вы можете использовать эту 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" .


2

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


Так что есть ответ на этот вопрос тогда?
Pierre.Vriens

0

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.