Proszę zaakceptować odpowiedzi na niektóre z poprzednich pytań, ponieważ wydaje się, że kilka z tych odpowiedzi było poprawnych rozwiązań - kliknij kontur zaznaczony po lewej stronie odpowiedzi.
Shane Madden,
Odpowiedzi:
15
Utwórz plik o nazwie .my.cnfw 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.
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ł.
Jeśli odpowiedź rozwiązała problem, kliknij znacznik wyboru, aby go zaakceptować.
Zoredache
1
Spowoduje to zapisanie hasła jako zwykłego tekstu, co odradzam z punktu widzenia bezpieczeństwa.
Giovanni
@ Giovanni na pewno, chociaż mysql_config_editor, o którym wspomniałeś w swojej odpowiedzi, chociaż użyteczny nie jest dostępny, dopóki nie uruchomisz 5.6.6. Nadal istnieją dziś dystrybucje, które mają starsze wersje.
Zoredache
Ale jak to się robi w systemie Windows?
Wolfpack'08,
9
Możesz użyć tego mysql_config_editornarzę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-pathopcję:
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Domyślnie mysqlklient odczytuje [client]i [mysql]grupuje z innych plików opcji, więc odczytuje je również z pliku ścieżki logowania. Z --login-pathopcją 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:
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
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).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ł.
źródło
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:
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ę: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
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:
Więcej informacji o narzędziu można znaleźć na stronie „mysql_config_editor - Narzędzie konfiguracji MySQL” .
źródło
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”.źródło
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 ...
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
źródło