Ausführen von MySQL-Befehlen über Shell-Skripte
Das Ausführen von MySQL-Befehlen über Shell-Skripte kann für die Automatisierung von Datenbankaufgaben von entscheidender Bedeutung sein. Durch die Integration von MySQL-Befehlen in Skripts können Sie sich wiederholende Aufgaben automatisieren oder komplexe Vorgänge ohne manuellen Eingriff ausführen.
Problemstellung
Ein Benutzer möchte den folgenden MySQL-Befehl ausführen ein Shell-Skript:
mysql -h "server-name" -u root "password" "database-name" < "filename.sql"
Dieser Befehl stellt Daten aus einer SQL-Datei wieder her, aber der Benutzer stößt auf einen Fehler, wenn er versucht, ihn aus einer auszuführen Shell-Skript.
Lösung
Der Fehler tritt auf, wenn das Passwort im Shell-Skript angegeben wird. Um ein Passwort in einem Shell-Skript anzugeben, verwenden Sie das Flag -p ohne Leerzeichen zwischen dem Flag und dem Passwort, wie unten gezeigt:
mysql -h "server-name" -u root "-pXXXXXXXX" "database-name" < "filename.sql"
Verwenden einer Konfigurationsdatei für Anmeldeinformationen
Ein alternativer Ansatz besteht darin, Benutzeranmeldeinformationen in der Datei ~/.my.cnf zu speichern. Dadurch entfällt die Notwendigkeit, das Passwort in der Befehlszeile anzugeben. Die Konfigurationsdatei sollte folgenden Inhalt haben:
[client] user = root password = XXXXXXXX
Wenn die Konfigurationsdatei vorhanden ist, kann der MySQL-Befehl wie folgt ausgeführt werden:
mysql -h "server-name" "database-name" < "filename.sql"
Tipps zur Fehlerbehebung
Wenn der MySQL-Befehl nicht über das Shell-Skript ausgeführt werden kann, ziehen Sie die folgende Fehlerbehebung in Betracht Tipps:
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Befehle mit Passwörtern aus Shell-Skripten sicher ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!