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

推薦する

CSS の :focus-within の楽しさについて簡単に説明します

Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...

40 CSS/JSスタイルと機能的な技術処理

1-ドロップダウン選択ボックスのスタイル設定 - ドロップダウン リストを変更します。 2- <...

HTML タグ sup と sub の応用の紹介

HTML タグ: 上付き文字HTML では、<sup> タグは上付き文字のテキストを定義...

マインスイーパゲームを実装するための jQuery プラグイン (1)

この記事では、jQueryプラグインを使用したマインスイーパゲームの最初の記事の具体的なコードを参考...

Linux 仮想ホストで SourceGuardian (sg11) 暗号化コンポーネントを有効にする詳細な手順

注: sg11 弊社では Linux システム仮想ホストのセルフインストールのみサポートしております...

クロスドメインの問題を解決するためのNginxの実用的な方法

フロントエンドとバックエンドを分離し、nginxを使用してクロスドメインの問題を解決するフロントエン...

CSS 手法を使用してモジュール性を実現する例

1. CSS 方法論とは何ですか? CSS methodologiesデザイン パターンまたは CS...

MySQL 5.7.15 のインストールと設定方法のグラフィック チュートリアル (Windows)

MySQL をインストールする必要があるため、インストール手順を以下のように記録します。 自分なり...

仮想マシン VMware に Kali Linux をインストールする最新の超詳細なグラフィック チュートリアル

目次1. システムイメージファイルをダウンロードする2. 新しい仮想マシンを作成する3. Kali ...

Deepin で virtualenv をインストールして使用するチュートリアル

virtualenv は、分離された Python 仮想環境を作成するためのツールです。独立したディ...

Dockerはローカルイメージとコンテナの保存場所を設定します

指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...

Mysql で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

CentOS 6.5 の設定 ssh キーフリーログインで pssh コマンドを実行する方法の説明

1. psshを確認してインストールします。yum list pssh 2. キーレスログインが設定...

Web プロジェクト開発における 2 つのトークン理由とサンプル コードの分析

目次質問:プロジェクトには 2 つのトークンがあり、1 つは有効期間が 2 時間 (ショート トーク...

sqlmap インジェクションの詳細なグラフィック説明

目次1. この Web サイトには SQL インジェクションの脆弱性がある可能性があることが判明しま...