Tutorial zur Migration von MySQL von phpstudy nach Linux

Tutorial zur Migration von MySQL von phpstudy nach Linux

Projektzweck

Migrieren Sie die Daten in MySQL 5.5.53, das mit phpstudy in der ursprünglichen Windows-Umgebung erstellt wurde, in die neue Host-Linux-Umgebung.

Umweltbedingungen

Neue Hostsystem-Plattform:

CentOS Version 7.4 (Endgültig) Kernel 3.10.0-693.el7.x86_64

MySQL-Umgebung:

mysql> Status
Serverversion: 5.6.39-log MySQL Community Server (GPL)
Server-Zeichensatz: utf8
DB-Zeichensatz: utf8
Client-Zeichensatz: utf8
Conn.-Zeichensatz: utf8

mysql> Variablen wie „%storage_engine%“ anzeigen;
+----------------------------+--------+
| Variablenname | Wert |
+----------------------------+--------+
| Standardspeicherengine | InnoDB |
| Standard-Tmp-Storage-Engine | InnoDB |
| Speichermaschine | InnoDB |
+----------------------------+--------+

Alter Host:
Systemplattform:

Windows 2012 R2 SE X64

MySQL-Umgebung:

Serverversion: 5.5.53 MySQL Community Server (GPL)
Server-Zeichensatz: utf8
DB-Zeichensatz: utf8
Client-Zeichensatz: utf8
Conn.-Zeichensatz: utf8

mysql> Variablen wie „%storage_engine%“ anzeigen;
+------------------------+--------+
| Variablenname | Wert |
+------------------------+--------+
| Standardspeicherengine | MyISAM |
| Speichermaschine | MyISAM |
+------------------------+--------+

Die Speicher-Engine der Tabelle

mysql> Tabellenstatus aus Datenbank anzeigen\G;
Engine: InnoDB
Motor: MyISAM

Migrationsprozess

1. Verwenden Sie die eigenen Tools von phpstudy, um jede Datenbank zu exportieren

Bild

Ich habe gesehen, dass für den Vorgang auch mysqldump verwendet wurde.

2. Wenn Sie nur die ursprüngliche Tabellen-Engine beibehalten möchten, können Sie Folgendes tun

mysql> Datenbank zentao erstellen;
mysql> verwende zentao;
mysql> Quelle zentao20180413161534.sql;
mysql> Tabellen anzeigen;
+---------------------------------+
| Tische_in_zentao |
+---------------------------------+
| zt_aktion |
| zt_bug |
| zt_build |
...

Die originale Tisch-Engine bleibt erhalten.

mysql> Tabellenstatus von zentao\G anzeigen;
*************************** 1. Reihe ***************************
Name: zt_action
Motor: MyISAM
Version: 10
Row_format: Dynamisch

3. Ändern Sie die Tabellen-Engine in der Originaldatenbank in InnoDB

Suchen Sie in der exportierten Tabellenstruktur zentao.sql nach ENGINE=MyISAM und ändern Sie es in ENGINE=InnoDB. Wie Sie es ersetzen, hängt von Ihren Vorlieben ab.

# vim zentao.sql
:%s/ENGINE=MyISAM/ENGINE=InnoDB/g

4. Daten in die angegebene Datenbank importieren

mysql> verwende zentao;
mysql> Quelle zentao.sql;

Die Tabellen-Engine wurde auf InnoDB geändert.

mysql> Tabellenstatus von zentao\G anzeigen;
*************************** 1. Reihe ***************************
Name: zt_action
Engine: InnoDB
Version: 10
Zeilenformat: Kompakt

5. Aber es gibt ein Problem. Beim Überprüfen der Detailinformationen der Tabelle wird festgestellt, dass Data_free nicht Null ist, was darauf hinweist, dass eine Datenfragmentierung vorliegt und optimiert werden muss.

mysql> wähle table_schema, table_name, data_free, engine aus information_schema.tables, wobei table_schema nicht in ('information_schema', 'mysql') und data_free != 0 ist;
+--------------+------------+-----------+--------+
| Tabellenschema | Tabellenname | datenfrei | Engine |
+--------------+------------+-----------+--------+
| zentao | zt_bug | 4194304 | InnoDB |
| zentao | zt_history | 4194304 | InnoDB |
+--------------+------------+-----------+--------+

6. Defragmentieren Sie die Tabelle

mysql> verwende zentao;
mysql> Tabelle zt_bug,zt_history optimieren;
+-------------------+----------+----------+-------------------------------------------------------------------+
| Tabelle | Op | Nachrichtentyp | Nachrichtentext |
+-------------------+----------+----------+-------------------------------------------------------------------+
| zentao.zt_bug | optimieren | Hinweis | Tabelle unterstützt kein Optimieren, stattdessen wird „Neu erstellen + Analysieren“ ausgeführt |
| zentao.zt_bug | optimieren | Status | OK |
| zentao.zt_history | optimieren | Hinweis | Tabelle unterstützt kein Optimieren, stattdessen wird „Neu erstellen + Analysieren“ durchgeführt |
| zentao.zt_history | optimieren | Status | OK |
+-------------------+----------+----------+-------------------------------------------------------------------+

Es wird angezeigt, dass die Tabelle die Optimierung nicht unterstützt, aber unten wird „OK“ angezeigt. Tatsächlich wurde die Optimierung erfolgreich ausgeführt. Version 5.6.X unterstützt tatsächlich Innodb

mysql> wähle Tabellenname, Engine, Tabellenzeilen, Datenlänge + Indexlänge, DATA_FREE aus Information_schema.tables, wobei TABLE_SCHEMA = "zentao" und data_free = 0 ist;
+----------------------+--------+---------+---------+-----------+
| Tabellenname | Engine | Tabellenzeilen | Länge | DATA_FREE |
+----------------------+--------+---------+---------+-----------+
| zt_bug | InnoDB | 1018 | 1589248 | 0 |
| zt_history | InnoDB | 2584 | 1589248 | 0 |

Derselbe Vorgang kann für mehrere Datenbankmethoden durchgeführt werden.

Das könnte Sie auch interessieren:
  • Perfekte Lösung für MySQL, das nach der Installation von phpstudy nicht gestartet werden kann (keine Notwendigkeit, die ursprüngliche Datenbank zu löschen, keine Notwendigkeit, eine Konfiguration zu ändern, keine Notwendigkeit, den Port zu ändern) direkte Koexistenz
  • phpstudy2018-Tutorial zum Upgrade von MySQL 5.5 auf 5.7 (mit Bildern und Text)
  • So aktualisieren Sie die MySQL-Version in phpStudy auf 5.7.17
  • Lösen Sie das Problem des Startfehlers von PHPStudy MySQL unter Windows

<<:  Detaillierte Erklärung der Verwendung von Reduce Fold Unfold in JS

>>:  Detaillierte Erläuterung der Konstruktion und Verwendung von Redis5-Clustern unter Linux (Centos7)

Artikel empfehlen

Beispiel für das Erstellen eines virtuellen Hosts basierend auf dem Apache-Port

Apache: Virtuellen Host basierend auf Port erstel...

Zwei Möglichkeiten zum korrekten Bereinigen von MySQL-Binlog-Protokollen

mysql bereinigt Binlog-Protokolle korrekt Vorwort...

Drei Möglichkeiten zur Kommunikation zwischen Docker-Containern

Wir alle wissen, dass Docker-Container voneinande...

Einführung in den glibc-Upgradeprozess für Centos6.5

Inhaltsverzeichnis Szenarioanforderungen glibc-Ve...

WeChat Mini-Programme werden global über die Uni-App geteilt

Bei der tatsächlichen Verwendung ist es häufig er...

Tiefgreifendes Verständnis des Slot-Scopes in Vue (für Anfänger geeignet)

Es gibt bereits viele Artikel über Slot-Scope auf...

Details nach dem Setzen des src des Iframes auf about:blank

Nachdem die Quelle des Iframes auf „about:blank“ g...

Implementierungscode zum Hinzufügen von Links zu FLASH über HTML (Div-Ebene)

Heute möchte ein Kunde eine Anzeige schalten und d...

Detaillierte Erklärung der Verwendung des Bash-Befehls

Unter Linux wird Bash als Standard übernommen, wa...

Zusammenfassung der Mysql-Existes-Verwendung

Einführung Mit EXISTS wird geprüft, ob eine Unter...

Detaillierte Erklärung der MySQL-Dreiwertelogik und NULL

Inhaltsverzeichnis Was ist NULL Zwei Arten von NU...