WordPress(MySQL) - ‘TYPE=MyISAM’ エラー!
Updated:
久々に、WordPress のプラグインを調整していたら、有効化した際にブラウザに以下のようなエラーメッセージが表示されるようになりました。
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near 'TYPE=MyISAM'
at line 9 on line: 1471
※実際は1行で表示されています。
大体、原因は想像できました。 少し前に、Apache や PHP をアップデートした際に MySQL も 5.1 系から 5.5 系にアップグレードしていたので。
以下、原因と対策です。
記録
0. 前提条件
- CentOS 6.3 での作業を想定。他の OS やディストリビューションでも同じだと思う。
- WordPress 3.4.1 を想定。別のバージョンは未確認。
- MySQL 5.5.27 を想定。5.5 系は同様だと思う。
1. 原因
MySQL のバージョンを 5.1 系から 5.5 系にアップグレードしたことにより、WordPress で使用しているプラグイン内の SQL の記述が不適切になってしまっている。 実際には、”Wordpress Automatic Upgrade” というプラグイン内のテーブルを作成する SQL 部分でストレージエンジンを
TYPE=MyISAM
と指定しているのが不適切らしい。
なぜなら、MySQL 5.5 系では TYPE
ではなく ENGINE
を使用しなければならないからだ。
2. 対策
プラグイン “Wordpress Automatic Upgrade” の PHP スクリプトを編集する。 “wp-content/plugins/wordpress-automatic-upgrade/” にある “wordpress-automatic-upgrade.php” 内の、
) TYPE=MyISAM
という行(1470行あたりと1488行あたりの2ヶ所)を次のように変更する。
) ENGINE=MyISAM
これで、エラーは出なくなる。 ※確かに、1470 行まで SQL 文を 1471 行で判定してエラーとなっているのが理解できる。
参考サイト
ただ、プラグインの PHP スクリプトを直接編集しているので、当該プラグインをアップデートした際には、再度確認して編集する必要があります。 MySQL 5.5 系に合わせたものなるには当分先になるでしょうが。。。
以上。
Comments