phpstudy から Linux への MySQL の移行に関するチュートリアル

phpstudy から Linux への MySQL の移行に関するチュートリアル

プロジェクトの目的

元のWindows環境でphpstudyを使用して構築されたMySQL 5.5.53のデータを新しいホストLinux環境に移行する

環境条件

新しいホストシステムプラットフォーム:

CentOS リリース 7.4 (最終) カーネル 3.10.0-693.el7.x86_64

mysql 環境:

mysql> ステータス
サーバーバージョン: 5.6.39-log MySQL コミュニティサーバー (GPL)
サーバー文字セット: utf8
Db 文字セット: utf8
クライアントの文字セット: utf8
接続文字セット: utf8

mysql> '%storage_engine%' のような変数を表示します。
+----------------------------+--------+
| 変数名 | 値 |
+----------------------------+--------+
| デフォルトのストレージエンジン | InnoDB |
| default_tmp_storage_engine | InnoDB |
| ストレージ エンジン | InnoDB |
+----------------------------+--------+

旧ホスト:
システムプラットフォーム:

Windows 2012 R2 SE X64

mysql 環境:

サーバーバージョン: 5.5.53 MySQL コミュニティサーバー (GPL)
サーバー文字セット: utf8
Db 文字セット: utf8
クライアントの文字セット: utf8
接続文字セット: utf8

mysql> '%storage_engine%' のような変数を表示します。
+------------------------+--------+
| 変数名 | 値 |
+------------------------+--------+
| デフォルトのストレージエンジン | MyISAM |
| ストレージ エンジン | MyISAM |
+------------------------+--------+

テーブルのストレージエンジン

mysql> データベースからテーブルステータスを表示します\G;
エンジン: InnoDB
エンジン: MyISAM

移行プロセス

1. phpstudyの独自のツールを使用して各データベースをエクスポートする

画像

操作にはmysqldumpも使用されていることがわかりました。

2. 元のテーブルエンジンだけを残しておきたい場合は、次のようにします。

mysql> データベース zentao を作成します。
mysql> zentao を使用します。
mysql> ソース zentao20180413161534.sql;
mysql> テーブルを表示します。
+-------------------+
| テーブル_in_zentao |
+-------------------+
| zt_アクション |
| zt_バグ |
| zt_ビルド |
...

オリジナルのテーブルエンジンはそのまま残っています。

mysql> zentao\G からテーブルステータスを表示します。
************************** 1. 行 ****************************
名前: zt_action
エンジン: MyISAM
バージョン: 10
行形式: 動的

3. 元のデータベースのテーブルエンジンをInnoDBに変更する

エクスポートされたテーブル構造 zentao.sql で ENGINE=MyISAM を見つけて、ENGINE=InnoDB に変更します。 どのように置き換えるかは、好みに応じて異なります。

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

4. 指定されたデータベースにデータをインポートする

mysql> zentao を使用します。
mysql> ソース zentao.sql;

テーブルエンジンをInnoDBに変更しました

mysql> zentao\G からテーブルステータスを表示します。
************************** 1. 行 ****************************
名前: zt_action
エンジン: InnoDB
バージョン: 10
行形式: コンパクト

5. しかし、問題があります。テーブルの詳細情報を確認すると、Data_free がゼロではないことがわかります。これは、データの断片化があり、最適化が必要であることを示しています。

mysql> information_schema.tables から table_schema、table_name、data_free、engine を選択します。ここで、table_schema は ('information_schema'、'mysql') 内になく、data_free != 0 です。
+--------------+------------+-----------+---------+
| テーブルスキーマ | テーブル名 | データフリー | エンジン |
+--------------+------------+-----------+---------+
| zentao | zt_bug | 4194304 | InnoDB |
| zentao | zt_history | 4194304 | InnoDB |
+--------------+------------+-----------+---------+

6. テーブルをデフラグする

mysql> zentao を使用します。
mysql> テーブル zt_bug、zt_history を最適化します。
+-------------------+----------+----------+-------------------------------------------------------------------+
| テーブル | Op | メッセージ タイプ | メッセージ テキスト |
+-------------------+----------+----------+-------------------------------------------------------------------+
| zentao.zt_bug | 最適化 | 注記 | テーブルは最適化をサポートしていないため、代わりに再作成 + 分析を実行します |
| zentao.zt_bug | 最適化 | ステータス | OK |
| zentao.zt_history | 最適化 | 注記 | テーブルは最適化をサポートしていないため、代わりに再作成 + 分析を実行します |
| zentao.zt_history | 最適化 | ステータス | OK |
+-------------------+----------+----------+-------------------------------------------------------------------+

テーブルが最適化をサポートしていないというメッセージが表示されますが、下には OK と表示されます。実際には正常に実行されています。バージョン5.6.Xは実際にInnodbをサポートしています

mysql> information_schema.tables から table_name、engine、table_rows、data_length+index_length length、DATA_FREE を選択します。ここで、TABLE_SCHEMA='zentao'、data_free =0 です。
+-------------------+--------+------------+----------+-----------+
| テーブル名 | エンジン | テーブル行 | 長さ | DATA_FREE |
+-------------------+--------+------------+----------+-----------+
| zt_bug | InnoDB | 1018 | 1589248 | 0 |
| zt_history | InnoDB | 2584 | 1589248 | 0 |

複数のデータベース メソッドに対して同じ操作を実行できます。

以下もご興味があるかもしれません:
  • phpstudy をインストールした後に MySQL を起動できない問題に対する完璧なソリューション (元のデータベースを削除する必要はなく、設定を変更する必要もなく、ポートを変更する必要もありません) 直接共存
  • phpstudy2018 MySQL 5.5 から 5.7 へのアップグレードに関するチュートリアル (画像とテキスト付き)
  • phpStudy で MySQL バージョンを 5.7.17 にアップグレードする方法
  • WindowsシステムでPhPStudy MySQLの起動に失敗する問題を解決する

<<:  JS での Reduce Fold Unfold の使用法の詳細な説明

>>:  Linux (Centos7) での redis5 クラスターの構築と使用方法の詳細な説明

推薦する

nginx パニック問題の解決方法の詳細な説明

nginx パニック問題に関しては、まず nginx の起動プロセス中に、マスター プロセスが構成フ...

一般的な HTTP ステータス コード 10 個の詳細な説明

HTTP ステータス コードは、Web サーバーの HTTP 応答ステータスを示すために使用される ...

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

Windows はリモート デスクトップが長時間自動的に切断されるのを防ぎます

Windows リモート デスクトップを使用してサーバーに接続したことがある人なら、リモート デスク...

Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)

この記事では、Docker を使用して MySQL をデプロイし、データを保持する方法について簡単に...

ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順

環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...

HTML の 5 種類のスペースの意味

HTML には、幅の異なる 5 つのスペース エンティティが用意されています。非改行スペース ( )...

MySQLデータベースのSYNフラッディング問題を解決する

Syn 攻撃は、最も一般的で最も簡単に悪用される攻撃方法です。TCP プロトコルの欠陥を利用して、偽...

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

使用状況分析を備えたMySQL

持つことの使用法having 句を使用すると、グループ化後にさまざまなデータをフィルター処理できます...

Linux で MySQL をインストールして設定する

システム: Ubuntu 16.04LTS 1\公式サイトからmysql-5.7.18-linux-...

mysql5.7.24 バージョンのインストール手順と解凍時に発生した問題の概要

1. ダウンロード参考: 2. D:\MySQL\mysql-5.7.24 などの固定の場所に解凍し...

Electronで不規則な形状の透明部分をクリックする実装

目次不規則なフォームの実装透明な部分をクリックする不規則なフォームの実装ここでは円形フォームを実装し...

MySQLデータベースでゼロ値を含む日付の問題について簡単に説明します

デフォルトでは、MySQL は日付に 0 値を挿入することを受け入れますが、実際には日付の 0 値に...

Tomcat の文字化けしたコードとポート占有の解決方法について簡単に説明します

Tomcat サーバーは、無料でオープン ソースの Web アプリケーション サーバーです。軽量のア...