phpMyAdminでエクスポートしたファイルをインポートしたらクラッシュして正常にリストアできない問題が発生
特定のDB(このブログのDB)だけクラッシュしてインポートできませんでした。
環境
- MySQL 8.0
- phpMyAdmin 5.1.3
エラーメッセージ
エラー
静的解析:
解析中に 1 個のエラーが見つかりました。
式がありません。 (near "ON" at position 25)
SQL クエリ: コピー 編集 編集
SET FOREIGN_KEY_CHECKS = ON;
MySQL のメッセージ: ドキュメント
#2006 - MySQL server has gone away
エラーログ
2021-12-17T09:17:15.221075Z 0 [ERROR] [MY-013183] [InnoDB] Assertion failure: ddl0builder.cc:1495:n >= IO_BLOCK_SIZE thread 140118736234240
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
09:17:15 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
2021-12-17T09:17:15.221430Z 0 [ERROR] [MY-013183] [InnoDB] Assertion failure: ddl0builder.cc:1495:n >= IO_BLOCK_SIZE thread 140118719448832
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
原因
ALTER TABLE ~~
調べていくとインデックスの作成時にコケてるっぽいけどMyAdminが悪いのかWordPressの問題かわかりませんでした‥
解決方法
エクスポート方法: > 詳細 – 可能なオプションをすべて表示 で 詳細 > 生成オプション の ✔ IF NOT EXISTS
(テーブル作成中にインデックスが生成されるので、効率が悪い)にチェックを入れると正常にインポートできました。
関連リンク
#2006 – MySQL server has gone away on db import – Stack Overflow