Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie melde ich mich automatisch in MySQL von einem Shell-Skript an?

Alternative Möglichkeiten, diese Optionen zu schreiben.

Sie können schreiben

mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"

um leere Zeichenfolgen als separate Argumente zu übergeben. Ihr Kommentar unten weist darauf hin, dass der Client dennoch nach einem Passwort fragt. Wahrscheinlich interpretiert es das leere Argument als Datenbanknamen und nicht als Passwort. Sie könnten also stattdessen Folgendes versuchen:

mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"

.my.cnf-Datei

Aber selbst wenn es einen Weg gibt, würde ich immer noch vorschlagen, dass Sie einen ~/.my.cnf verwenden Datei stattdessen. Argumente auf der Befehlszeile sind wahrscheinlich in einer Prozessliste enthalten, die von ps -A -ocmd generiert wird , damit andere Benutzer sie sehen können. Die .my.cnf -Datei hingegen kann (und sollte) nur von Ihnen lesbar gemacht werden (mit chmod 0600 ~/.my.cnf). ) und wird automatisch verwendet. Lassen Sie diese Datei die folgenden Zeilen enthalten:

[client]
user=root
password=

Dann ein einfaches mysql -e "SHOW DATABASES" reicht aus, da der Client seine Anmeldeinformationen aus dieser Datei erhält.

Siehe 6.1.2.1. Endnutzerrichtlinien für Passwortsicherheit für die verschiedenen Möglichkeiten, wie Sie ein Passwort angeben können, und ihre jeweiligen Vor- und Nachteile. Siehe 4.2.3.3. Verwenden von Optionsdateien für allgemeine Informationen zu dieser .my.cnf Datei