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.