Import einer SQL-Datei in eine MySQL-Datenbank per Shell-Skript
Mithilfe des folgenden Shell-Skripts kann eine SQL-Datei automatisiert in eine MySQL-Datenbank importiert werden. Dies ist besonders nützlich für die Wiederherstellung von Backups, die Einrichtung neuer Umgebungen oder die Migration von Datenbanken.
Quellcode
DB_NAME=""
DB_USER=""
DB_PASS=""
SQL_FILE=""
mysql -u $DB_USER -p$DB_PASS $DB_NAME < $SQL_FILEDie Funktionsweise ist einfach: Einfach die Daten in Zeile 1 bis 4 eingeben und schon geht es los.
Um die erforderlichen Informationen für den Datenbankimport bereitzustellen, verwendet das Skript vier Variablen.
| Variable | Beschreibung |
|---|---|
| DB_NAME | Name der Zieldatenbank |
| DB_USER | Datenbankbenutzer für die Anmeldung |
| DB_PASS | Passwort des Datenbankbenutzers |
| SQL_FILE | Pfad zur zu importierenden SQL-Datei |
Erklärung des Importbefehls
mysql -u $DB_USER -p$DB_PASS $DB_NAME < $SQL_FILEDie einzelnen Parameter haben folgende Bedeutung:
- mysql startet den MySQL-Kommandozeilenclient.
- -u $DB_USER gibt den Benutzernamen für die Datenbankverbindung an.
- -p$DB_PASS übermittelt das Passwort des Benutzers.
- $DB_NAME definiert die Datenbank, in die importiert werden soll.
- < $SQL_FILE leitet den Inhalt der angegebenen SQL-Datei als Eingabe an MySQL weiter.
Praxisbeispiel
DB_NAME="wordpress"
DB_USER="wpuser"
DB_PASS="meinPasswort"
SQL_FILE="/home/backups/wordpress_backup.sql"
mysql -u $DB_USER -p$DB_PASS $DB_NAME < $SQL_FILEIn diesem Beispiel wird die Datei „wordpress_backup.sql” in die Datenbank „wordpress” importiert. Die Anmeldung erfolgt dabei mit dem Benutzer „wpuser”.
Typische Anwendungsfälle
- Wiederherstellung eines Datenbank-Backups
- Migration einer Website auf einen neuen Server
- Übernahme von Test- oder Entwicklungsdaten
- Automatisierte Deployments und Skripte
Sicherheitshinweis
Die direkte Übergabe des Passworts über den Parameter „-p” kann ein Sicherheitsrisiko darstellen, da das Passwort unter Umständen in der Prozessliste sichtbar ist. Für produktive Umgebungen wird die Verwendung einer MySQL-Konfigurationsdatei (.my.cnf) oder anderer sicherer Authentifizierungsmethoden empfohlen.
Konklusion
Der Import von SQL-Dateien lässt sich mit wenigen Zeilen Shell-Code vollständig automatisieren. Das Skript ist besonders für Administratoren und Entwickler geeignet, die regelmäßig Datenbanken sichern, migrieren oder wiederherstellen müssen.
Es ist eigentlich ganz einfach, wenn man es einmal gemacht hat. Ich finde Bash-Skripte besser als das mühsame Kopieren aller Befehle in die Befehlszeile.
So können die Parameter zur Wiederverwendung beliebig ausgetauscht werden.

