Speichern Sie das MySQL-Client-Passwort oder richten Sie das Passwort ohne Authentifizierung ein
11
Ich verwende den MySQL-Befehlszeilenclient und möchte nicht jedes Mal, wenn ich den Client starte, das Kennwort angeben müssen. Was sind meine Optionen?
Bitte akzeptieren Sie Antworten auf einige Ihrer vorherigen Fragen, da es sich bei einigen dieser Antworten anscheinend um richtige Lösungen handelt. Klicken Sie auf das markierte Häkchen links neben der Antwort.
Shane Madden
Antworten:
15
Erstellen Sie eine Datei mit dem Namen .my.cnfin Ihrem Home-Verzeichnis, die so aussieht. Stellen Sie sicher, dass die Dateisystemberechtigungen so festgelegt sind, dass nur der Benutzer sie lesen kann (0600).
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
Da Sie auch Ihre Frage mysqldump markiert haben, sollten Sie sich diese Frage ansehen.
Update (29.06.2016) Wenn Sie MySQL 5.6.6 oder höher ausführen, sollten Sie sich das Tool mysql_config_editor ansehen , mit dem Sie Anmeldeinformationen in einer verschlüsselten Datei speichern können. Vielen Dank an Giovanni , der mir das gesagt hat.
Wenn die Antwort Ihr Problem gelöst hat, sollten Sie auf das Häkchen klicken, um es zu akzeptieren.
Zoredache
1
Dadurch wird das Kennwort als einfacher Text gespeichert, eine Vorgehensweise, von der ich aus Sicherheitsgründen abraten würde.
Giovanni
@Giovanni sicher, obwohl der mysql_config_editor, den Sie in Ihrer Antwort erwähnen, nützlich ist, ist erst verfügbar, wenn Sie 5.6.6 ausführen. Es gibt heute noch Distributionen mit älteren Versionen.
Zoredache
Aber wie geht das unter Windows?
Wolfpack'08
9
Mit dem mysql_config_editorDienstprogramm können Sie Authentifizierungsdaten in einer verschlüsselten Anmeldepfaddatei mit dem Namen speichern .mylogin.cnf.
So erstellen Sie einen neuen Satz von Anmeldeinformationen:
mysql_config_editor set --host=db.host.org --user=dbuser --password
und geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
Dadurch werden Ihre Authentifizierungsdaten im Standard- clientAnmeldepfad gespeichert .
Sie können mehrere Authentifizierungsdaten speichern, indem Sie eine andere --login-pathOption angeben:
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Standardmäßig mysqlliest der Client die [client]und [mysql]Gruppen aus anderen Optionsdateien, sodass sie auch aus der Anmeldepfaddatei gelesen werden. Mit einer --login-pathOption lesen Client-Programme zusätzlich den benannten Anmeldepfad aus der Anmeldepfaddatei. Die aus anderen Optionsdateien gelesenen Optionsgruppen bleiben unverändert. Betrachten Sie diesen Befehl:
mysql --login-path=db2
Der mysqlClient liest [client]und [mysql]aus anderen Optionsdateien, und [client], [mysql]und [mypath]aus der Login - Pfaddatei.
So drucken Sie alle in der Konfigurationsdatei gespeicherten Informationen aus:
Wir dürfen nicht so tun, als ob die .mylogin.cnf überhaupt sicher wäre, da ich my_print_defaults -s [use your login-path]damit dieses Passwort im Klartext anzeigen kann . Aus diesem Grund unterstützt MariaDB diesen Ansatz "Sicherheit durch Dunkelheit" nicht.
Es gibt einen anderen Weg, orthogonal zu den oben genannten Methoden, aber es kann ein Sicherheitsrisiko sein, wenn jemand anderes Ihren Monitor überwacht oder wenn Sie Ihren Verlauf speichern .
Trotzdem ist es eine Option, die verhindert, dass Sie dazu aufgefordert werden, und eine, die ich in wegwerfbaren Docker-Bildern und dergleichen verwende.
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Sie werden nicht dazu aufgefordert. Sie können einen temporären Alias in der Shell festlegen, wenn Sie dies wünschen.
Mit Vorsicht verwenden.
mysql Ver 14.14 Distrib 5.5.61-38.13 für debian-linux-gnu (x86_64) mit readline 5.1
Antworten:
Erstellen Sie eine Datei mit dem Namen
.my.cnf
in Ihrem Home-Verzeichnis, die so aussieht. Stellen Sie sicher, dass die Dateisystemberechtigungen so festgelegt sind, dass nur der Benutzer sie lesen kann (0600).Da Sie auch Ihre Frage mysqldump markiert haben, sollten Sie sich diese Frage ansehen.
Verwenden von mysqldump in einem Cron-Job ohne Root-Passwort
Update (29.06.2016) Wenn Sie MySQL 5.6.6 oder höher ausführen, sollten Sie sich das Tool mysql_config_editor ansehen , mit dem Sie Anmeldeinformationen in einer verschlüsselten Datei speichern können. Vielen Dank an Giovanni , der mir das gesagt hat.
quelle
Mit dem
mysql_config_editor
Dienstprogramm können Sie Authentifizierungsdaten in einer verschlüsselten Anmeldepfaddatei mit dem Namen speichern.mylogin.cnf
.So erstellen Sie einen neuen Satz von Anmeldeinformationen:
und geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
Dadurch werden Ihre Authentifizierungsdaten im Standard-
client
Anmeldepfad gespeichert .Sie können mehrere Authentifizierungsdaten speichern, indem Sie eine andere
--login-path
Option angeben:Standardmäßig
mysql
liest der Client die[client]
und[mysql]
Gruppen aus anderen Optionsdateien, sodass sie auch aus der Anmeldepfaddatei gelesen werden. Mit einer--login-path
Option lesen Client-Programme zusätzlich den benannten Anmeldepfad aus der Anmeldepfaddatei. Die aus anderen Optionsdateien gelesenen Optionsgruppen bleiben unverändert. Betrachten Sie diesen Befehl:Der
mysql
Client liest[client]
und[mysql]
aus anderen Optionsdateien, und[client]
,[mysql]
und[mypath]
aus der Login - Pfaddatei.So drucken Sie alle in der Konfigurationsdatei gespeicherten Informationen aus:
Weitere Informationen zum Dienstprogramm finden Sie unter "mysql_config_editor - MySQL Configuration Utility" .
quelle
Wir dürfen nicht so tun, als ob die .mylogin.cnf überhaupt sicher wäre, da ich
my_print_defaults -s [use your login-path]
damit dieses Passwort im Klartext anzeigen kann . Aus diesem Grund unterstützt MariaDB diesen Ansatz "Sicherheit durch Dunkelheit" nicht.quelle
Es gibt einen anderen Weg, orthogonal zu den oben genannten Methoden, aber es kann ein Sicherheitsrisiko sein, wenn jemand anderes Ihren Monitor überwacht oder wenn Sie Ihren Verlauf speichern .
Trotzdem ist es eine Option, die verhindert, dass Sie dazu aufgefordert werden, und eine, die ich in wegwerfbaren Docker-Bildern und dergleichen verwende.
Sie werden nicht dazu aufgefordert. Sie können einen temporären Alias in der Shell festlegen, wenn Sie dies wünschen.
Mit Vorsicht verwenden.
mysql Ver 14.14 Distrib 5.5.61-38.13 für debian-linux-gnu (x86_64) mit readline 5.1
quelle