データベースのインポートでエラー「TYPE=MyISAM」
WordPress2.7を3.8にアップデートするためにMySQLのバージョンを4.0.24から5.6に移行しようと古いデータを新しいデータベースにインポートしたらエラーが出てしまったので対処法を紹介します。
まえがき
先日WordPress2.7を3.8にアップデートしたのですが結構めんどくさかった。
ていうかWordPress2.7とか古すぎです。
使用していたMySQLのバージョンは4.0.24です。
WordPress3.8はMySQLバージョン 5.0 以上でないと動作しないので必然的にデータベースを移行する必要がでてきます。
とりあえずサーバーにMySQL5.6(現時点で最新)のデータベースを一個作成して、古いデータベースからデータをエクスポートして
最新のデータベースにインポートする際にエラーが出ました。
#1064 – 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 AUTO_INCREMENT=18’ at line ○○
なんだこのエラーは!って感じでしたが解決できたので解決方法を覚え書きです。
エラーの原因
これはMySQLのストレージエンジンを指定するための記述「TYPE=MyISAM」が古いデータベースからエクスポートしたSQLファイルに入っていると表示されるエラーです。
「TYPE=MyISAM」という書き方はMySQL4.0.2以前の書き方で、現在は非推奨となっていることによりエラーが出てしまうわけですね。
「TYPE=MyISAM」を「ENGINE=MyISAM」に置き換える
エクスポートしたSQLファイル上の「TYPE=MyISAM」と書かれている部分を「ENGINE=MyISAM」に置き換えることでこのエラーを回避することができます。
WordPressのデータベースをエクスポートした場合、「TYPE=MyISAM」と書かれている箇所が複数あるので全部置き換えてあげましょう。
まとめ
MySQL4.xからMySQL5.xにデータベースのデータを移行する場合は気を付けましょう。
ただWordPress2.7を3.8にアップデートという当初の目的はこのエラーをパスしただけでは達成できませんでした。
文字化けという壁が立ちはだかるのですね。
とりあえず今回の件で一個思ったのは、
バージョンアップはこまめにしておこう。