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 クラスターの構築と使用方法の詳細な説明

推薦する

HTML でフォーム コントロールを無効にする 2 つの方法: readonly と disabled

Web ページを作成する過程では、フォームがよく使用されます。しかし、フォーム上のコントロールを変更...

MySQL での挿入効率のいくつかの例の比較

序文最近、仕事の都合で、約 1000w の大量のデータを MySQL に挿入する必要があり、時間がか...

ミニマルなウェブサイトデザインの例

Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...

Vue SPA ファースト スクリーン最適化ソリューション

目次序文最適化ソ連オンデマンドインポート1. ルーティングファイルでコンポーネントをオンデマンドでイ...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...

CentOS 上の Docker に Jupyter をインストールしてポートを開く方法

目次jupyterをインストールするDocker ポートマッピングjupyterをインストールするp...

VUEは底部吸引ボタンを実装

この記事では、VUEの具体的なコードを共有して、下部吸引ボタンを実装する例を紹介します。具体的な内容...

CSSの優先度を理解する2つの方法

方法1: 値を追加する公式の説明を見るには MDN にアクセスしてください。優先度はどのように計算さ...

Ubuntu16.04はphp5.6ウェブサーバー環境を構築します

Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...

Dockerコンテナはルーティングを介して直接通信し、ネットワーク通信を実現します。

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

Vue で axios を使用して画像をアップロードするときに発生する問題

目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...

Vue 開発ツリー構造コンポーネント (コンポーネント再帰)

この記事では、Vue開発ツリー構造コンポーネントの具体的なコードを例として紹介します。具体的な内容は...

CSS を使用して半透明の背景と不透明なテキストを実現する例

この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...

MySQL における 10 進数型の使用法の簡単な紹介

MySQL でサポートされている浮動小数点型は、 FLOAT 、 DOUBLE 、およびDECIMA...

HTML の入力の readonly 属性と disabled 属性の違いについて簡単に説明します。

「読み取り専用」と「無効」はどちらも、ユーザーがフォーム フィールドの内容を変更できないようにしま...