MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが発生していました。

'comment_date' のデフォルト値が無効です

その理由は、このような発言が

`wp_comments` が存在する場合はテーブルを削除します。
テーブル `wp_comments` を作成します (
  `comment_ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `comment_post_ID` bigint(20) UNSIGNED NOT NULL デフォルト 0,
  `comment_author` tinytext 文字セット utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `comment_author_email` varchar(100) 文字セット utf8mb4 照合 utf8mb4_unicode_520_ci NOT NULL デフォルト '',
  `comment_author_url` varchar(200) 文字セット utf8mb4 照合 utf8mb4_unicode_520_ci NOT NULL デフォルト '',
  `comment_author_IP` varchar(100) 文字セット utf8mb4 照合 utf8mb4_unicode_520_ci NOT NULL デフォルト '',
  `comment_date` datetime(0) NOT NULL デフォルト '0000-00-00 00:00:00',
  `comment_date_gmt` datetime(0) NOT NULL デフォルト '0000-00-00 00:00:00',
  `comment_content` テキスト文字セット utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL、
  `comment_karma` int(11) NOT NULL デフォルト 0,
  `comment_approved` varchar(20) 文字セット utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL デフォルト '1',
  `comment_agent` varchar(255) 文字セット utf8mb4 照合 utf8mb4_unicode_520_ci NOT NULL デフォルト '',
  `comment_type` varchar(20) 文字セット utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_parent` bigint(20) UNSIGNED NOT NULL デフォルト 0,
  `user_id` bigint(20) UNSIGNED NOT NULL デフォルト 0,
  BTREEを使用した主キー(`comment_ID`)
  インデックス `comment_post_ID`(`comment_post_ID`) BTREE 使用、
  インデックス `comment_approved_date_gmt`(`comment_approved`, `comment_date_gmt`) BTREE を使用、
  インデックス `comment_date_gmt`(`comment_date_gmt`) BTREE を使用、
  インデックス `comment_parent`(`comment_parent`) BTREE 使用、
  インデックス `comment_author_email`(`comment_author_email`(10)) BTREE の使用
) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_520_ci ROW_FORMAT = Dynamic;

このエラーは主に、MySQL を 5.7 にアップグレードしたときのデフォルト値の非互換性によって発生します。フィールド名を確認してください。私のフィールドは時間フィールドで、そのタイプは datetime です。型のデフォルト値が制限されている可能性があるので、sql_mode を確認してください。案の定: NO_ZERO_IN_DATE、NO_ZERO_DATE、これら2つのパラメータは時間を制限し、0にはできません

sql_modeを確認する

mysql> 'sql_mode' のような変数を表示します。
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 変数名 | 値 |
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION |
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
セット内の 1 行 (0.00 秒)

マイSQL>

一時的な変更:

mysql> セッションの設定
 -> sql_mode = 'ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION';
クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒)

マイSQL>

永久的な変更:

my.cnfファイルを直接変更することができます

例えば: vim /etc/my.cnf

Windows環境でmysql.ini設定ファイルを変更して解決してください〜

[mysqld]の下に次の行を追加します。

sql_mode=ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION

さて、問題は解決しました。今度は、テーブルをインポートまたは作成するときに確認してみましょう。

上記は、MySQL を 5.7 にアップグレードしたときに発生する WordPress データ インポート エラー 1067 の問題を解決する詳細な内容です。MySQL データベース インポート エラー 1067 の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Navicat を使用して MySQL データベースをエクスポートおよびインポートする方法
  • MySQL コマンドラインのエクスポートとデータベースインスタンスのインポートの詳細な説明
  • Wampserver で MySQL データベースをインポートする手順
  • MySQL コマンドラインによるデータベースのエクスポートとインポート
  • php.ini を変更して、Mysql インポート データベース ファイルの変更方法の最大制限を実装します。
  • Windows が MySQL サービスを開始できず、エラー 1067 を報告する場合の解決策
  • mysql サービスが起動できず、エラー 1067 が報告される解決策 (mysql 起動エラー 1067)

<<:  INS と DEL を使用してドキュメントの変更をマークする方法の詳細な説明

>>:  Linux での Nginx アンチホットリンクと最適化の実装コード

推薦する

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

MySQL マルチバージョン同時実行制御メカニズム (MVCC) ソースコードの詳細な説明

目次1. はじめに2. MVCC (マルチバージョン同時実行制御メカニズム) 2.1 繰り返し読み取...

MySQL 整合性制約の例の詳細な説明

この記事では、MySQL の整合性制約について説明します。ご参考までに、詳細は以下の通りです。メイン...

JSはカード配布アニメーションを実現します

この記事の例では、カード配布アニメーションを実装するためのJSの具体的なコードを参考までに共有してい...

DockerがMySQL構成実装プロセスを開始

目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...

Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、...

jQueryはすべての選択と逆選択操作ケースを実装します

この記事では、全選択と逆選択操作を実装するためのjQueryの具体的なコードを参考までに共有します。...

生年月日を年齢に変換し、グループ化して人数を数えるMySQLの例

データベースのクエリ `学生`から*を選択 クエリ結果id名前誕生日1張三1970-10-01 2李...

MySQL学習記録: KEYパーティションが引き起こした血なまぐさい事件

需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...

Navicatを使ってMySQLを操作する方法

目次序文: 1. Navicatの紹介2. シンプルなチュートリアルの共有接続管理ライブラリテーブル...

Vueライフサイクルカメラの8つのフック関数

目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...

HTML 内の input type="reset" タグが無効 (機能しない) である理由として考えられるもの。

<html:reset> タグを使用すると、リセット ボタンが無効になり、ボタンをクリッ...

JS ES6 変数分割代入の詳細な説明

目次1. 脱構築とは何か? 2. 配列の分割3. 配列モードと代入モードの統一4. デフォルト値の構...