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

Vite+Electron zum schnellen Erstellen von VUE3-Desktopanwendungen

Inhaltsverzeichnis 1. Einleitung 2. Erstellen Sie...

So verbergen Sie die Grenze/Trennlinie zwischen Zellen in einer Tabelle

Nur den oberen Rand anzeigen <table frame=above...

MySQL implementiert eine Lösung ähnlich der Oracle-Sequenz

MySQL implementiert Oracle-ähnliche Sequenzen Ora...

Eine Lösung für einen Fehler in IE6 mit jquery-multiselect

Bei der Verwendung von jquery-multiselect (einem ...

Der DOCTYPE-Modusauswahlmechanismus bekannter Browser

Dokumentumfang Dieser Artikel behandelt den Modus...

2 Methoden und Vorsichtsmaßnahmen zum Hinzufügen von Skripten in HTML

So fügen Sie ein <script>-Skript in HTML ein...

Tutorial zur Installation von Elasticsearch 7.6.2 in Docker

Docker installieren Sie müssen Docker installiere...

Textmodus im IE! Einführung in die Rolle von DOCTYPE

Nachdem das im vorherigen Artikel besprochene Prob...

So implementieren Sie die @person-Funktion über Vue

Dieser Artikel verwendet Vue und fügt Mausklicker...