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ć?


[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

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


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.


2
Dodanie tego do mojego .bash_profile sprawiło, że jeszcze łatwiej:alias my-host='mysql --defaults-file=HOST.cnf'
— spyle
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.