この記事では、書き込みエラーやデータベース作成の失敗エラーなど、MySQLデータベースのさまざまな問題の解決方法について詳しく説明します。
データベース書き込みエラー
コピー先サーバーが MySQL 5.7+ で、Duplicator のログに次のようなエラーが表示される場合:ERRORdatabase error write '...' のようなエラーがDuplicatorのログに表示される場合、MySQLをストリクトモードで実行すると問題が発生する可能性があります。この場合、以下のオプションを試してください:
一般的なエラーメッセージ
- DB ERROR:テーブル wp_XYZ の CREATE クエリを取得できませんでした。ファイル内の情報が正しくありません:'./database_store/wp_XYZ.frm'。
- DATABASE ERROR: この関数の宣言とバイナリ・ロギングには、DETERMINISTIC、NO SQL、READS SQL DATAのいずれもありません。
- テーブルxxxのテーブルスペースが存在します。インポートする前にテーブル空間を破棄してください。
解答1
一般的な書き込みエラーについては、いくつかの選択肢があります。順番に試してみてください。最も手っ取り早い解決策は OPTION A ですが、サーバに恒久的に残すためには OPTION B を検討してください。
オプションA
- インストーラーの詳細モードを有効にする。
- Options " Database " Extraction Setingsで、Mode settingsでCustomを選択し、テキストボックスにNO_ENGINE_SUBSTITUTIONと入力する。
- 続けてインストールを完了する。
オプションB
- このファイルをメモ帳で開く:C: \wamp64bin ∮mysql5.7.9 ∮my.ini
- 最後の行をファイルに追加する:
[mysqld]
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION - MySQL サーバを再起動します(格安ホストの場合は、ホスティングプロバイダに問い合わせる必要があります)。
オプションA/Bが機能しない場合は、以下を実行してください:
- rootとしてサーバーにSSH接続し、/etc/mysql/conf.d/disable_strict_mode.cnfファイルを作成する。
[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
次のエラー・メッセージに関連する作成クエリの書き込み問題を解決します:
EXCEPTION メッセージ:DB ERROR:テーブルwp_XYZのCREATEクエリを取得できませんでした。ファイル内の情報が正しくありません:'./database_store/wp_XYZ.frm'に誤った情報があります。
- 現在のWordPressサイトでデータベースの修復を実行してください。
- インストーラのステップ2 " テーブルタブ " 問題の発生しているテーブルのインポートフラグのチェックを外します。
- または、ステップ1でバックアップを作成する際に、当該テーブルを追加対象から除外する。
解決策3
DATABASE ERROR: This function has none of DETERMINISTIC, NO SQL, READS SQL DATA in its declaration and binary logging is enabled (you want to use lesssafe. log_bin_trust_function_creators variable).
または、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の記事を参照されたい。
データベース作成の失敗
データベースの作成アクションを使用しようとすると、"Unable to create database..."(データベースを作成できません)などのメッセージが表示されます。
ソリューション
"Unable to create database... "は、通常ホストが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