MySQL-Datenbank kopieren

In MySQL gibt es keinen Spezialbefehl um eine ganze Datenbank inklusive Daten und Struktur zu kopieren. Mit folgenden zwei Befehlen kann eine Tabelle inklusive der Originalstruktur kopiert werden:

create table Zieldatenbank.Tabelle_1 like Quelldatenbank.Tabelle_1;
insert into Zieldatenbank.Tabelle_1 select * from Quelldatenbank.Tabelle_1;

Der erste Befehl kopiert die Struktur der Tabelle inklusive aller Indizes. Der zweite Befehl kopiert alle Daten in die gerade kopierte Tabelle.

Basierend auf diesem Befehl können alle Tabellen der Quelldatenbank mit dem Befehl SHOW TABLES; angezeigt werden. Dabei müssen Views ausgeschlossen werden, da sie nicht mit dem o. g. Befehlen kopiert werden können:

show full tables where Table_type = 'BASE TABLE';

Die Liste der Tabellen kann in Excel kopiert werden und dort mit der folgenden Formel in der Nachbarspalte in ein SQL-Skript umgewandelt werden, der eine Tabelle nach der anderen in die neue Datenbank kopiert:

="create table shirta_local_com." & A2 & " like " & A2 & "; insert into shirta_local_com." & A2 & " select * from " & A2 & ";"

Da viele Datenbanken die Fremdschlüssel nutzen, kann die Prüfung der Fremdschlüssel wärend des Kopiervorgangs mit dem folgenden Befehl abgeschaltet und anschließend wieder aktiviert werden:

set foreign_key_checks = 0;
...
set foreign_key_checks = 1;

Der gesamte Skript könnte wie folgt in Excel umgesetzt werden:

mysql-datenbanken-kopieren

Excel-Vorlage: Download

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>