Можно ли настроить пароли для базы данных или хоста в .my.cnf?

47

У меня есть следующее в моем ~/.my.cnf

[client]
password="somepass"

но это не тот пароль, который я использую для каждого пользователя @ хоста / базы данных, к которому я подключаюсь. Есть ли способ указать в конфиге разные пароли для разных вещей, чтобы мне не пришлось их вводить?

xenoterracide
источник
[Пользователь @DTest ответил на такой вопрос в мае этого года] [1] [1]: dba.stackexchange.com/questions/2820/…
RolandoMySQLDBA

Ответы:

64

Как я ответил здесь , вы можете добавить раздел для каждого пользователя / хоста / базы данных, к которому вы подключаетесь, используя синтаксис в вашем ~/.my.cnf:

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com

Как только это будет в вашем пользователе .my.cnf, вы можете использовать его, выполнив это в командной строке:

$ mysql --defaults-group-suffix=host1
Дерек Дауни
источник
Как и обещал, +1 !!!
RolandoMySQLDBA
Не могли бы вы объяснить это --defaults-group-суффикс?
Отей
Приятно. Мне потребовалось некоторое время, чтобы выяснить все остальное, но для резервного копирования mysql Cron я теперь могу использовать mysqldump --defaults-group-суффикс = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name > / home / myaccount / backups / db_name _ $ (echo $ (date '+ \% Y \% m \% d'). sql.gz), чтобы создать резервную копию в сжатом виде. Спасибо!
user1324409 30.12.15
Примечание: если вы поместите это в глобальный my.cnf, такой как /etc/mysql/my.cnf, но у вас есть определенный пользователем .my.cnfс [client]определенным в нем, последний переопределит настройки в глобальном файле! бу.
Отей
Обратите внимание, что в справочной странице MariaDB ложно говорится, что суффикс xбудет читать раздел, [client_x]но в действительности вам нужен суффикс _xдля этого
Даниэль Бёмер
8

Размещать четкие пароли в текстовых файлах не рекомендуется, поскольку mysql 5.6.6.

Вы можете использовать mysql_config_editorдля сохранения паролей в зашифрованном виде также предоставить разные пароли для разных подключений https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html

PerroVerd
источник
3
Безопасность от неясности ...
Федерико Раззоли
+1 за упоминание mysql_config_editor
RolandoMySQLDBA
2
Пока эта программа (1) не перенесена в предыдущие версии, (2) не позволяет автоматическое развертывание паролей (т. Е. Не заставляет пароли читать на TTY), я не рекомендую этот метод.
Отей
Имеет ли MariaDB сопоставимую поддержку или функцию для соответствия mysql_config_editor?
Джереми Хайек
@JeremyHajek Нет, это не так, и, вероятно, никогда не произойдет, потому что разработчики MariaDB указывают на то, что это только дает ложное ощущение улучшенной безопасности: MySQL 5.6: Безопасность через самоуспокоенность?
Bloodgain
8

Другой ответ правильный. К сожалению mysqladmin, не поддерживает --defaults-group-suffix(по крайней мере, не версию, которую я использую).

Следовательно, я прибег к использованию --defaults-file=HOST.cnfвместо этого, который работает для mysql, mysqladminи mysqldump.

фифи финанс
источник
2
Добавление этого к моему .bash_profile сделало это еще проще:alias my-host='mysql --defaults-file=HOST.cnf'
spyle