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
|