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

W3C Tutorial (9): W3C XPath Aktivitäten

XPath ist eine Sprache zum Auswählen von Teilen v...

Vue implementiert den Download von ZIP-Dateien

In diesem Artikelbeispiel wird der spezifische Co...

IIS7 IIS8 Reverse-Proxy-Regeln schreiben, installieren und konfigurieren

Zweck: Station A als sekundäres Verzeichnis von S...

Vuex implementiert einfache Warenkorbfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Ideen und Codes zur Realisierung des Lupeneffekts in js

In diesem Artikelbeispiel wird der spezifische Co...

Div adaptive Höhe füllt automatisch die verbleibende Höhe

Szenario 1: HTML: <div Klasse="äußere&quo...

Zusammenfassung der Merkmale des SQL-Modus in MySQL

Vorwort Der SQL-Modus wirkt sich auf die von MySQ...

Verständnis von Haslaylout- und BFC-Parsing

1. haslayout und bfc sind IE-spezifische und Stand...

Detaillierte Erläuterung des SQL_Mode-Modusbeispiels in MySQL

Dieser Artikel beschreibt den SQL_Mode-Modus in M...

Eine kurze Diskussion über die Leistungsprobleme des MySQL-Paging-Limits

MySQL-Paging-Abfragen werden normalerweise über L...

So migrieren Sie MySQL-Daten richtig nach Oracle

In der MySQL-Datenbank gibt es eine Tabelle Stude...

Detaillierte Schritte zum Starten des Django-Projekts mit nginx+uwsgi

Wenn wir ein Webprojekt mit Django entwickeln, wi...