プロジェクトの目的 元の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の起動に失敗する問題を解決する
|