最高のWordPressバックアップ
& 移行プラグインを今すぐ入手しよう
デュプリケーターを今すぐ入手

デュプリケーター・ドキュメンテーション

デュプリケーターのドキュメント、参考資料、チュートリアル

データベースの互換性問題の処理

この記事では、互換性の問題やテーブル照合エラーなど、MySQL データベースの互換性に関するさまざまな問題の解決方法について詳しく説明します。

互換性の問題

データベースの非互換性の問題を避けるために、ビルドサーバとインストーラサーバのデータベースのバージョンができるだけ近いことを確認してください。バックアップがインストール先よりも新しいデータベースバージョンで作成された場合、問題が発生する可能性があります。

インストーラを実行するサーバーのバージョン番号が、インストーラがビルドされた場所と同じかそれ以上であることを確認するのが最善です。メジャーバージョンとマイナーバージョンが同じか近い場合 (例えば、[5.7 から 5.6]) は、問題なく移行できるはずです。バージョンのペアが[5.7から5.1]の場合は、非常にシンプルなセットアップでない限り、問題が発生する可能性が高くなります。バージョンが離れすぎている場合は、ホスティングプロバイダと協力して、このサーバの MySQL エンジンをアップグレードしてください。

解決策1:UTF8MB4 FORMAT

現在検出されているMySQLサーバーのバージョンが5.5.3(2010年4月8日リリース)未満の場合、utf8mb4テーブルのサポートは動作しません。utf8mb4フォーマットは、MySQLサーバー5.5.3+でのみサポートされています。WordPressの最近のリリースとの互換性を高め、インストールエラーの問題を回避するために、このサーバーのMySQLサーバーのバージョンをアップグレードすることを強くお勧めします。

解決策2:UTF8入力

データベース接続文字列の一部として非 ASCII 文字が検出され、MySQL サーバーが正しく設定されていない場合、接続できません。この問題は、MySQLのmy.ini設定を更新することで解決できます。
[mysqld]の下にcharacter_set_server=utf8という設定を追加し、データベースサーバーを再起動してください。この値はコメントを外す必要があるかもしれない。

解決策3:MARIA-DB SETUPS

バージョンが10.N.Nの場合、データベース・ディストリビューションはMySQLのMariaDBフレーバーである。ディストリビューションは非常に近いが、微妙な違いがいくつかある。オペレーティングシステムによっては、「5.5.5-10.1.21-MariaDB」のように、両者の相関関係を示すバージョンを報告するものもあります。詳細については、オンラインのMariaDB対MySQL - 互換性ページをご覧ください。

いくつかのメッセージは単なる通知であることに注意してください。インストールプロセスを続行し、インストーラのステップ 3 にあるインストーラレポートとともに、installer-log.txt ファイルを注意深く監視することを強くお勧めします。インストールプロセスでエラーが検出されなかったことを確認するため、これらの場所に通知/警告/エラーがないか必ず確認してください。問題が見つかった場合は、FAQ ページで "インストールレポート上のデータベースエラーや一般的な警告を解決するには?" を参照してください。

解決策4:テーブルを作成する

MySQLとMariaDBでのテーブルの作成は非常によく似ていますが、いくつかの小さな違いがあり、時々(よくあることではありませんが)問題を引き起こすことがあります。それぞれの違いを見るには、こちらの2つのドキュメントを参照してください:

MariaDBにはMySQLにはないオプションがある)そのため、MariaDBでは動作したが、MySQLがサポートしていないテーブルオプションがあるCREATEクエリを実行しようとすると、失敗することがあります。現在のところ、DBダンプから問題のあるテーブルオプションを削除するには、ファイルを手動で検索・置換することで対処しています。

テーブル照合の問題

互換モードと「不明な照合順序」エラーを解決するには?

この問題を解決するには4つの方法がある。オプション1は、この問題を解決する最も迅速で簡単、かつ安全な方法です。

未知の照合順序の概要

不明な照合順序」エラーは、インストールされているMySQLサーバ(ターゲットサーバ)が、バックアップを作成したMySQLエンジンよりも古いことを意味します。などのエラーメッセージが表示されます:

ERRORデータベースエラー write 'Unknown collation: 'utf8mb4_unicode_ci'
は、使用している MySQL バージョンがこのテーブル形式をサポートしていないために発生します。MySQL サーバのバージョン比較は、インストーラの "Test Connection" ボタンをクリックするか、installer-log.txt ファイルを表示することで確認できます。出力は次のようになります:

MYSQL VERSION: このサーバー:5.4.22 - ビルド・サーバー5.7.10

オプション1 - データベース・ソフトウェアの更新

不明な照合順序」問題を修正する最もクリーンで安全な方法は、バックアップが構築されたバージョンと同じか新しいバージョンにターゲットMySQLサーバを更新することです。最も一般的なフォーマットエラーは以下の通りです:

  • utf8mb4_unicode_ci: MySQL サーバー 5.5.3+ が必要です。
  • utf8mb4_unicode_520_ci: MySQL サーバー 5.6+ が必要です。

ベスト・フィックス:この問題を解決する最も簡単な方法は、必要な照合順序をサポートするMySQLサーバーにアカウントを移動するようホストに依頼することです(上記の例を参照)。エラーメッセージを伝えれば、適切なサーバーに移動してくれます。

ほとんどのホストは、あなたのサイトがある現在のサーバーをアップグレードしませんが、彼らは簡単に新しいサーバーにあなたのアカウントを移動することができるはずです。これは非常に一般的なことで、良いホストであればかなり簡単に対応してくれるはずです。

5.5.3より低いバージョンを使用している場合、MySQLサーバーのバージョンが非常に古いことになります。5.5.3は2010年にリリースされましたので、お使いのMySQLサーバーのバージョンはさらに古いことになります。私たちは、セキュリティとパフォーマンスを向上させ、WordPressコアのアップデートに準拠するために、最新のソフトウェアを使用するようにホストと協力することを強くお勧めします。くだらないホストに時代遅れのソフトウェアを使わせないようにしましょう。

オプション 2 - デフォルトの文字セットと照合順序

インストーラーのステップ2のオプションにある'Legacy'チェックボックスはもはや存在しません。しかし、現在は自動的に検出され、設定されます。文字コードと照合順序が明示的に定義されていない場合、デフォルトの文字コードと照合順序が使用される旨のメッセージが表示されます。

データベーステーブルを作成する際、使用する MySQL バージョンがテーブルを作成した MySQL バージョンの照合順序タイプをサポートしていない場合があります。この場合、インストーラは自動的に照合順序をフォールバックしてテーブルの作成を試みます。

オプション3 - 互換モードの実行

Mysqldump 互換性モードは、他のデータベースシステムや古い MySQL サーバーとの互換性が高いデータベース SQL スクリプト出力を生成するのに役立ちます。
The Duplicator はいくつかの互換性モードをサポートしており、これらはすべてプラグインで mysqldump モードが有効になっている場合にのみ使用できます。互換モードは mysqldump オプションを使用してバックアップを構築するときに有効にすることができます。

デュプリケーターは作成プロセス中にのみ互換モードを許可します。テンプレートを作成する時やスケジュールを使用する時には許可されません。このような設定を行う理由は、これらの設定を使用することをやめさせ、本当の問題、つまりデータベースサーバーを更新することを解決するためです。

データベースのアップグレード互換モードは最後の手段としてのみ使用してください。データベースの問題を解決するために推奨される方法は、両方のデータベースサーバーが最新で、バージョン番号が非常に近いことを確認することです(オプション1を参照)。例えば、バックアップを作成したデータベースサーバーが5.7.5である場合、バックアップをインストールしたデータベースサーバーは少なくとも5.7.Nの範囲である必要があります。可能であれば、ホストまたはサーバー管理者にMySQLサーバーを新しいバージョンにアップグレードするよう依頼してください。ホストが最近のバージョンにアップグレードしない場合は、できるだけ高いバージョンにアップグレードするよう依頼してください。

データの保存:インターネット上には、現在のSQLファイルを修正したり、mysqldump互換モードを使用したりする方法を説明した回避策(オプション4)がいくつかありますが、根本的な問題は、データをあるフォーマットで保存しておき、それを変換しようとしていることです。これらのテクニックは、後々データの損失や非互換性の問題につながる可能性があります。正しい方法は、MySQL ソフトウェアをアップグレードすることです。

両方のモードを試してみよう:

  • Duplicatorは現在2つの異なるモードをサポートしています:MysqldumpとPHPモードです(設定 " バックアップオプションを参照)。
  • もし、文字の問題に直面し、選択肢がなくなってしまった場合は、両方のモードでデータベースを構築し、どちらか一方が問題を解決するかどうか試してみることを検討してもよいだろう。

オプション4 - 手動設定

これらのオプションは上級者向けであり、注意して実行してください。これらのオプションを使用するには、database.sqlスクリプトを更新するか、ソース・データベースのテーブル照合タイプを更新する必要があります。以下は3つの異なるアプローチです。問題に対処するために必要なオプションは1つだけです。

database.sqlを更新する

照合順序が不明」な問題については、以下の手順を試してみてください:

  1. アーカイブのzipファイルを手動で解凍する。
  2. database.sqlファイルをメモ帳で開き、照合順序を検索&置換する。例えば
    • replace: 'utf8mb4' を 'utf8' に置き換える。
    • replace: 'utf8_unicode_520_ci' を 'utf8_general_ci' に置き換える。


次に、サーバー上のinstaller.phpファイルをブラウズし、Advancedを選択して "Manual Extract "をチェックします。
これは、他の照合順序でも試すことができます(例えば、'collation_type_1'を'collation_type_2'に置き換えます)。

ソースデータベースをコードで更新する

このオプションを使用するには、システムをよく理解し、前もってバックアップをとっておく必要がある。このスクリプトは、ビルドサーバー上で照合順序を変更し、ターゲットサーバーでサポートできるようにします。スクリプトの全文は、スタック・オーバーフローのhttp://stackoverflow.com/a/29939906/2808424。

IDEでソースデータベースを更新する

上記のコードを実行するのが面倒な場合は、IDEやGUIツールを使って、SQL文やインターフェイスを使ってテーブルの照合を手動で変更することもできる。繰り返しますが、これらのオプションを使用するには、システムをよく理解し、前もってバックアップを取っておく必要があります。

phpMyAdminのようなIDEを使って照合順序を更新する簡単な手順を以下に示します:

この記事は役に立ちましたか?