*Cube-Host– Volle Cloud Dienste!!

MySQL-Datenbankmigration: eine schrittweise und sichere Methode

MySQL database migration a step-by-step and secure method

Einführung

Die Migration einer MySQL-Datenbank ist ein kritischer Vorgang, der sich auf die Datenintegrität, die Anwendungsstabilität und die Rollback-Funktionen auswirkt. Wir werden erläutern, wie Sie mysqldump verwenden, Benutzer migrieren, die Datenintegrität bewahren und die Feinheiten verschiedener MySQL-Versionen berücksichtigen.

Wann ist eine Migration erforderlich?

  • Umzug zu einem neuen Hosting-Anbieter oder Server.
  • Aktualisierung der MySQL-Version.
  • Konfiguration der Replikation oder Lastverteilung.
  • Konsolidierung von Datenbanken.

Risiken und wie man sie minimiert

  • Versionsinkompatibilität: Unterschiede in sql_mode, default_authentication_plugin, Kodierungen (utf8mb4_unicode_ci vs. utf8mb4_0900_ai_ci).
  • Verlust von Berechtigungen: Benutzer werden separat gespeichert und müssen manuell übertragen werden.
  • Ausfallzeiten der Anwendung bei der Migration ohne Replikation.
  • Inkonsistenter Dump: –single-transaction funktioniert nur mit InnoDB; für MyISAM ist FLUSH TABLES WITH READ LOCK erforderlich.

Schritt-für-Schritt-Plan für die Migration

Schritt 1. Erstellen Sie einen Dump

Hauptschlüsselwort (1): MySQL-Datenbankmigration.

Erstellen Sie einen Dump mit Beibehaltung der Logik:

				
					mysqldump -u root -p --single-transaction --routines --triggers --events olddb > dump.sql
				
			
  • –single-transaction reduziert Sperren (funktioniert nur für InnoDB).
  • –routines, –triggers, –events bewahrt Prozeduren, Trigger und Ereignisplaner.

Schritt 2. Übertragen Sie den Dump

Übertragen Sie ihn über SCP oder rsync über einen sicheren Kanal. Überprüfen Sie die Dateiintegrität:

				
					sha256sum dump.sql
				
			

Schritt 3. Erstellen der Datenbank

Auf dem neuen Server:

				
					mysql -u root -p -e "CREATE DATABASE newdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
				
			

Hinweis: utf8mb4_unicode_ci kann sich in MySQL 8.0 von utf8mb4_0900_ai_ci unterscheiden.

Schritt 4. Importieren Sie den Dump.

				
					mysql -u root -p newdb < dump.sql
				
			

Schritt 5. Benutzer und Berechtigungen übertragen

  • Führen Sie SHOW GRANTS FOR ‚user‘@’host‘ aus und übertragen Sie CREATE USER/GRANT.
  • In MySQL 8.0 können Sie mysqlpump –users verwenden.
  • Berücksichtigen Sie default_authentication_plugin (in 8.0 ist dies caching_sha2_password).

Schritt 6. Integritätsprüfung

  • Vergleichen Sie die Anzahl der Zeilen in den Tabellen.
  • Überprüfen Sie die Prüfsummen (pt-table-checksum).
  • Testen Sie wichtige SQL-Abfragen.

Schritt 7. Ausfallzeiten minimieren

Verwenden Sie für kritische Systeme die Replikation:

  1. Konfigurieren Sie den neuen Server als Slave.
  2. Warten Sie auf die Synchronisierung.
  3. Wechseln Sie ohne Ausfallzeiten von Master zu Slave.

Checkliste vor dem Wechsel

Einheit

Was ist zu überprüfen?

Versionen

MySQL/MariaDB-Kompatibilität

Kodierung

Stellen Sie sicher, dass utf8mb4 und Sortierungen korrekt sind.

SQL-Modus

sql_mode vergleichen

Rechte

GRANT überprüfen

Plugins

default_authentication_plugin

Replikation

Verzögerung überprüfen

Rollback

  • Erstellen Sie eine Sicherungskopie des alten Servers.
  • Um einen Rollback durchzuführen, können Sie den alten Server als Slave starten und zurückwechseln.

Fazit

Die Migration einer MySQL-Datenbank ist sicher, wenn Sie die Versionen berücksichtigen, Dumps verwenden und die Integrität überprüfen. Durch Replikation lassen sich Ausfallzeiten vermeiden, und mit Backups können Sie schnell einen Rollback durchführen. Die Migration einer MySQL-Datenbank erfordert eine sorgfältige Vorgehensweise in Bezug auf Berechtigungen, Sortierungen und Einstellungen.