データベース書き込み問題の処理
この記事では、書き込みエラー、データベース作成失敗エラーなど、さまざまなMySQLデータベースの問題を解決するための詳細な手順を説明します。
データベース書き込みエラー
宛先サーバーがMySQL 5.7以降で、Duplicatorログに次のようなエラーが表示される場合:ERROR database error write ‘…’ 、MySQLを厳格モードで実行している場合に問題が発生している可能性があります。その場合は、次のオプションを試してください。
一般的なエラーメッセージ
- DBエラー:テーブルwp_XYZのCREATEクエリを取得できませんでした。ファイル内の情報が正しくありません:「./database_store/wp_XYZ.frm」
- データベースエラー:この関数には、宣言とバイナリロギングにDETERMINISTIC、NO SQL、またはREADS SQL DATAがありません…
- テーブルxxxのテーブルスペースが存在します。IMPORTする前にテーブルスペースをDISCARDしてください
ソリューション 1
一般的な書き込みエラーについては、いくつかのオプションを検討してください。提示された順序で試してください。最も簡単な解決策はオプションAですが、サーバーで永続的に有効にするにはオプションBを検討してください。
オプション A
- インストーラーの詳細モードを有効にします。
- オプション » データベース » 抽出設定 で、モード設定をカスタムに選択し、テキストボックスに NO_ENGINE_SUBSTITUTION と入力します。

- インストールプロセスを続行して完了します。
オプション B
- このファイルをメモ帳で開きます:C:\wamp64\bin\mysql\mysql5.7.9\my.ini
- ファイルに最後の行を追加します:
[mysqld]
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION - MySQLサーバーを再起動します(予算ホストの場合は、ホスティングプロバイダーに連絡する必要がある場合があります)。
If OPTIONS A/B do not work, do the following:
- rootとしてサーバーにSSHで接続し、ファイル/etc/mysql/conf.d/disable_strict_mode.cnfを作成します。
- ファイルを開き、次の2行を入力します:
[mysqld]
sql_mode=IGNORE_SPACE, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION - MySQLを次のように再起動します:
$ sudo service mysql restart
解決策2
次のエラーメッセージに関連する作成クエリの書き込み問題を解決します:
例外メッセージ:DBエラー:テーブルwp_XYZのCREATEクエリを取得できませんでした。ファイル内の情報が正しくありません:「./database_store/wp_XYZ.frm」
- 現在お使いのWordPressサイトでデータベースの修復を実行します。
- インストーラーのステップ2 »テーブルタブ»問題が発生しているテーブルのインポートフラグのチェックを外します。
- または、ステップ1でバックアップを作成する際に、問題のテーブルをバックアップに追加しないように除外します。
ソリューション 3
次のエラーメッセージに関連する関数に関する書き込みの問題を解決します。
データベースエラー: この関数には、宣言に DETERMINISTIC、NO SQL、または READS SQL DATA のいずれも含まれておらず、バイナリロギングが有効になっています (LESSSAFE.LOG_BIN_TRUST_FUNCTION_CREATORS 変数を使用したい場合があります)。
または、mysql.ini 設定ファイルに以下を追加します。
MySQL コンソールで以下を実行します。
SET GLOBAL log_bin_trust_function_creators = 1;
または、mysql.ini 設定ファイルに以下を追加します。
log_bin_trust_function_creators = 1
この設定により、非決定性関数のチェックが緩和されます。非決定性関数とは、データを変更する関数 (つまり、update、insert、または delete ステートメントを含む) です。
詳細については、こちらをご覧ください。完全な詳細はこの記事をご覧ください。
ホスティングプロバイダーが上記の設定を許可しない場合は、直接連絡するか、関数を作成した開発者と協力して、データベースエンジンの要件に合わせて正しく動作するように再評価してもらうことを検討してください。
ソリューション 4
インストール中に、以下のようなメッセージが表示された場合は、データベーステーブルの削除プロセス中に正しく削除されなかった tablename.ibd ファイルのいずれかを削除する必要がある可能性があります。
この問題に対するすべての可能な解決策の詳細については、この stack-overflow 記事をご覧ください。
データベース作成の失敗
「データベースを作成できません…」というメッセージは、データベース作成アクションを使用しようとしたときに受信されます。
解決策
「データベースを作成できません…」は、通常、ホストが PHP コード経由でのデータベース作成をサポートしていないことを意味します。この場合、ホストが提供するツールを使用してデータベースを作成する必要があります。
ほとんどのホストでは、cpanel を通じてこれを行うことができます。新しいデータベースの作成方法については、ホストにお問い合わせください。Duplicator Pro ユーザーは、cPanel 接続タブを使用して cPanel アカウントにログインし、cPanel インストーラーインターフェイスを通じてデータベースを作成できるはずです。または、インポートまたは上書きモードを使用することもできます。
こちらも参照してください:
Duplicator に推奨されるホスティングプロバイダー?
http://dev.mysql.com/downloads/mysql
https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade