Чи можна налаштувати паролі для бази даних або одного хоста в .my.cnf


47

У мене є таке ~/.my.cnf

[client]
password="somepass"

але це не пароль, який я використовую для кожного користувача @ хоста / бази даних, до якого я підключаюся. Чи є якийсь спосіб вказати в конфігурації різні паролі для різних речей, тому мені не доведеться їх вводити?


[Користувач @DTest відповів на таке запитання у травні цього року] [1] [1]: dba.stackexchange.com/questions/2820/…
RolandoMySQLDBA

Відповіді:


64

Як я тут відповів , ви можете додати розділ для кожного користувача / хоста / db, до якого ви підключаєтесь, використовуючи синтаксис у вашому ~/.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 / backup / db_name _ $ (echo $ (дата '+ \% Y \% m \% d'). sql.gz) для створення gzipped резервної копії. Дякую!
user1324409

Примітка: якщо ви помістите це в глобальний my.cnf, такий як /etc/mysql/my.cnf, але у нього є визначений користувачем .my.cnfз [client]визначеними в ньому, останній замінить налаштування у глобальному файлі! бу.
Отей

Зверніть увагу , що сторінка керівництва MariaDB в ложно стверджує , що суфікс xбуде читати розділ , [client_x]але насправді вам потрібен суфікс _xдля цього
Daniel Bohmer

8

Вводити чіткі паролі в текстові файли не рекомендується, оскільки mysql 5.6.6.

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


3
Безпека від незрозумілості ...
Федеріко Розцолі

+1 за згадування mysql_config_editor
RolandoMySQLDBA

1
Поки ця програма (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'
шпигуйте
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.