Korzystam z klienta wiersza polecenia mysql i nie chcę podawać hasła przy każdym uruchomieniu klienta. Jakie są moje opcje?
Korzystam z klienta wiersza polecenia mysql i nie chcę podawać hasła przy każdym uruchomieniu klienta. Jakie są moje opcje?
Odpowiedzi:
Utwórz plik o nazwie .my.cnf
w katalogu domowym, który wygląda następująco. Upewnij się, że uprawnienia systemu plików są ustawione tak, aby tylko użytkownik będący właścicielem mógł je odczytać (0600).
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
Ponieważ otagowałeś również swoje pytanie mysqldump, powinieneś spojrzeć na to pytanie.
Używanie mysqldump w zadaniu cron bez hasła roota
Aktualizacja (2016-06-29) Jeśli korzystasz z mysql 5.6.6 lub nowszego, powinieneś spojrzeć na narzędzie mysql_config_editor , które umożliwia przechowywanie poświadczeń w zaszyfrowanym pliku. Dzięki Giovanni za to, że mi o tym wspomniał.
Możesz użyć tego mysql_config_editor
narzędzia do przechowywania danych uwierzytelniających w zaszyfrowanym pliku ścieżki logowania o nazwie .mylogin.cnf
.
Aby utworzyć nowy zestaw poświadczeń, uruchom:
mysql_config_editor set --host=db.host.org --user=dbuser --password
i wprowadź hasło po wyświetleniu monitu.
Spowoduje to zapisanie poświadczeń uwierzytelnienia w domyślnej client
ścieżce logowania.
Możesz przechowywać wiele danych uwierzytelniających, określając inną --login-path
opcję:
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Domyślnie mysql
klient odczytuje [client]
i [mysql]
grupuje z innych plików opcji, więc odczytuje je również z pliku ścieżki logowania. Z --login-path
opcją programy klienckie dodatkowo odczytują nazwaną ścieżkę logowania z pliku ścieżki logowania. Grupy opcji odczytane z innych plików opcji pozostają takie same. Rozważ to polecenie:
mysql --login-path=db2
mysql
Klient czyta [client]
i [mysql]
innych plików opcję, a [client]
, [mysql]
oraz [mypath]
z pliku ścieżki logowania.
Aby wydrukować wszystkie informacje zapisane w pliku konfiguracyjnym, uruchom:
mysql_config_editor print --all=true
Więcej informacji o narzędziu można znaleźć na stronie „mysql_config_editor - Narzędzie konfiguracji MySQL” .
Nie wolno nam udawać, że plik .mylogin.cnf jest w ogóle bezpieczny, ponieważ mogę użyć my_print_defaults -s [use your login-path]
go, aby hasło pojawiło się jako zwykły tekst. Dlatego MariaDB nie obsługuje tego podejścia polegającego na „zabezpieczeniu przez zaciemnienie”.
Istnieje inny sposób, ortogonalny w stosunku do wyżej wymienionych metod, ale może to stanowić zagrożenie bezpieczeństwa, jeśli ktoś ogląda monitor, LUB jeśli zapisujesz swoją historię .
Niemniej jednak jest to opcja, która zapobiegnie wyświetlaniu monitów, i taka, której używam w obrazach dokerów wyrzucanych i takie ...
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Nie pojawi się monit, możesz ustawić tymczasowy alias w powłoce, jeśli chcesz.
Używaj ostrożnie.
mysql Ver 14.14 Distrib 5.5.61-38.13, dla debian-linux-gnu (x86_64) przy użyciu readline 5.1