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

Der einfachste Weg, eine MySQL-Datenbank zu kopieren?

Hier sind einige Optionen:

mysqldump

Der einfachste und garantiert funktionierende Weg, dies zu tun, ist die Verwendung von mysqldump . Siehe die Manpages für das Dienstprogramm hier:

http://dev.mysql.com/doc/refman/5.1 /en/mysqldump.html

Grundsätzlich werden die SQL-Skripte ausgegeben, die zum Neuaufbau des Inhalts der Datenbank erforderlich sind, einschließlich der Erstellung von Tabellen, Triggern und anderen Objekten und des Einfügens der Daten (es ist alles konfigurierbar, wenn Sie also das Schema bereits woanders eingerichtet haben, können Sie das tun einfach zum Beispiel die Daten ausgeben).

Kopieren einzelner MyISAM-Tabellendateien

Wenn Sie über eine große Datenmenge verfügen und Wenn Sie die MyISAM-Speicher-Engine für die Tabellen verwenden, die Sie kopieren möchten, können Sie einfach mysqld herunterfahren und die .frm-, .myd- und .myi-Dateien von einem Datenbankordner in einen anderen kopieren (sogar auf einem anderen System). Dies funktioniert nicht für InnoDB-Tabellen und möglicherweise für andere Speicher-Engines (mit denen ich weniger vertraut bin).

mysqlhotcopy

Wenn Sie den Inhalt einer Datenbank ausgeben müssen während der Datenbankserver läuft , können Sie mysqlhotcopy verwenden (Beachten Sie, dass dies nur für MyISAM- und Archivtabellen funktioniert):

http://dev.mysql.com/doc/refman/5.0 /en/mysqlhotcopy.html

Kopieren des gesamten Datenordners

Wenn Sie die gesamte Datenbankinstallation kopieren Also, alle Datenbanken und der Inhalt jeder Datenbank, Sie können einfach mysqld herunterfahren, Ihr gesamtes MySQL-Datenverzeichnis komprimieren und es in das Datenverzeichnis des neuen Servers kopieren.

Dies ist die einzige mir bekannte Möglichkeit, InnoDB-Dateien von einer Instanz auf eine andere zu kopieren. Dies funktioniert problemlos, wenn Sie zwischen Servern wechseln, auf denen dieselbe Betriebssystemfamilie und dieselbe Version von MySQL ausgeführt werden. es kann Arbeiten zum Wechseln zwischen Betriebssystemen und/oder Versionen von MySQL; Aus dem Kopf, ich weiß es nicht.