MySQL-Datenbank per Shell-Skript aus SQL-Datei importieren

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_FILE

Die 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.

VariableBeschreibung
DB_NAMEName der Zieldatenbank
DB_USERDatenbankbenutzer für die Anmeldung
DB_PASSPasswort des Datenbankbenutzers
SQL_FILEPfad zur zu importierenden SQL-Datei

Erklärung des Importbefehls

mysql -u $DB_USER -p$DB_PASS $DB_NAME < $SQL_FILE

Die 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_FILE

In 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.

Ähnliche Beiträge