Czy możliwe jest skonfigurowanie haseł dla bazy danych lub hosta w .my.cnf

47

Mam w sobie następujące ~/.my.cnf

[client]
password="somepass"

ale to nie jest hasło, którego używam dla każdego użytkownika @ hosta / bazy danych, z którą się łączę. Czy jest jakiś sposób na określenie w konfiguracji różnych haseł dla różnych rzeczy, więc nie muszę ich wpisywać?

ksenoterracid
źródło
[Użytkownik @DTest odpowiedział na takie pytanie w maju tego roku] [1] [1]: dba.stackexchange.com/questions/2820/…
RolandoMySQLDBA

Odpowiedzi:

64

Jak odpowiedziałem tutaj , możesz dodać sekcję dla każdego użytkownika / hosta / db, z którym się łączysz, używając składni w ~/.my.cnf:

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

Gdy znajdziesz się w twoim użytkowniku .my.cnf, możesz z niego skorzystać, wykonując to w wierszu poleceń:

$ mysql --defaults-group-suffix=host1
Derek Downey
źródło
Zgodnie z obietnicą +1!
RolandoMySQLDBA
Czy możesz to wyjaśnić - sufiks -defaults-group?
Otheus
Miły. Zajęło mi to trochę czasu, aby znaleźć resztę stąd, ale dla kopii zapasowej Cron mysql mogę teraz użyć mysqldump --defaults-group-sufiks = host1 -P 3306-h 111.0.0.xxx --ssl -u db_usr nazwa_bazy_danych > / home / myaccount / backups / db_name _ $ (echo $ (date '+ \% Y \% m \% d'). sql.gz), aby utworzyć kopię zapasową spakowaną gzipem. Dziękuję Ci!
user1324409,
Uwaga: jeśli umieścisz to w globalnym pliku my.cnf, takim jak /etc/mysql/my.cnf, ale masz zdefiniowaną .my.cnfprzez użytkownika [client]definicję, ten ostatni zastąpi ustawienia w pliku globalnym! gwizd.
Otheus,
Należy pamiętać, że strona podręcznika MariaDB za fałszywie twierdzi, że przyrostek xbędą czytać sekcję [client_x], ale w rzeczywistości trzeba przyrostek _xdla że
Daniel BÖHMER
8

Umieszczanie wyraźnych haseł w plikach tekstowych nie jest zalecane, ponieważ mysql 5.6.6.

Możesz użyć mysql_config_editordo zapisania zaszyfrowanych haseł, aby podać różne hasła dla różnych połączeń https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html

PerroVerd
źródło
3
Bezpieczeństwo przez zaciemnienie ...
Federico Razzoli,
+1 za wzmiankę o mysql_config_editor
RolandoMySQLDBA
1
Dopóki ten program nie zostanie (1) przeniesiony do poprzednich wersji, (2) zezwoli na zautomatyzowane wdrożenie hasła (tj. Nie zmuszanie do odczytu haseł na TTY), nie polecam tej metody.
Otheus,
Czy MariaDB ma porównywalną obsługę lub funkcję pasującą do mysql_config_editor?
Jeremy Hajek
@JeremyHajek Nie, nie robi tego i prawdopodobnie nigdy tego nie zrobi, ponieważ twórcy MariaDB wskazują, że zapewnia ono jedynie fałszywe poczucie poprawy bezpieczeństwa: MySQL 5.6: Bezpieczeństwo poprzez samozadowolenie?
Bloodgain
8

Druga odpowiedź jest poprawna. Niestety mysqladminnie obsługuje --defaults-group-suffix(przynajmniej nie wersji, której używam).

I stąd uciekają się do używania --defaults-file=HOST.cnfzamiast, który pracuje mysql, mysqladmini mysqldump.

finanse fifi
źródło
2
Dodanie tego do mojego .bash_profile sprawiło, że jeszcze łatwiej:alias my-host='mysql --defaults-file=HOST.cnf'
spyle