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

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11

In diesem Artikel finden Sie das Installations-Tu...

Implementierung des Imports und Exports von Docker-Images

Docker-Nutzung von Gitlab Gitlab Docker Startbefe...

Zusammenfassung der HTML-Hack-Tags im IE-Browser

Code kopieren Der Code lautet wie folgt: <!--[...

Nach dem Docker-Lauf ist der Status immer „Beendet“

füge -it hinzu docker run -it -name test -d nginx...

Lösung zum Erstellen mehrerer Datenbanken, wenn Docker PostgreSQL startet

1 Einleitung Im Artikel „PostgreSQL mit Docker st...

Fallstudie zur Übermittlung von HTML-Formularen

Um die Methode zur Formularübermittlung zusammenz...

So fügen Sie ein Lua-Modul zu Nginx hinzu

Lua installieren wget http://luajit.org/download/...

So stellen Sie ein Angular-Projekt mit Docker bereit

Es gibt zwei Möglichkeiten, Angular-Projekte mit ...

Setzen Sie den Eingang auf schreibgeschützt über deaktiviert und schreibgeschützt

Es gibt zwei Möglichkeiten, schreibgeschützte Eing...

Implementierung von nacos1.3.0, erstellt mit Docker

1. Fortsetzen nacos-Datenbank Datenbankname nacos...