MySQLのストレージエンジン指定

久々に技術者らしいエントリー。

先日から色々あって、お下がりマシンにFreeBSD8.1Rを入れて色々試しているのですが、CMS関係を入れて遊ぼうと思った矢先、「あれ?」ということが。

JoomlaとかEC-CUBEを入れようと思うも、インストーラでこける。

少なくてもEC-CUBEは7-stableなマシンには問題なく入ったのだけれど、8.1RではNG。吐き出すエラーを見ていると、どうやらMySQLのストレージエンジン指定でNGになっている様子。

なんでだろうと思ったら、MySQL5.2以降ではストレージエンジンの指定にTYPE句が使えなくなったようで、ENGINE句を使えということらしい。

確かに7-stableなマシンのMySQLは5.1.36で、8.1Rは5.5.1だったりする。

ENGINE句もMySQL4系列から使えたような気もするし、使えなくても、Wordpressなんかは「4はもう知らないよ~」と言い切っていたりで、5系列もマイナーバージョンが5になっている現在、4系列は如何なものかとも思うわけでして。

んで、JoomlaとかEC-CUBEのコミッターの皆様におかれましては直した方が良いのではとご注進しようかと思いつつも、動向を追っているわけではないので、それはそれで何か理由があるのかもと、ひっそりと個人的に修正箇所をメモ。

  • Joomla
    展開先のinstallation/sql/mysql/にあるjoomla.sqlの

    TYPE=MyISAM CHARACTER SET `utf8`;

    とある箇所すべて

    ENGINE=MyISAM CHARACTER SET `utf8`;

    に修正する。(joomla_backward.sqlも修正しておいたほうが良いかも)

  • EC-CUBE
    展開先の install/sql/にある

    • create_table_mysql.sql
    • add/にある
      • dtb_campaign_order_mysql.sql
      • dtb_mobile_ext_session_id_mysql.sql
      • dtb_mobile_kara_mail_mysql.sql
      • dtb_module_mysql.sql
      • dtb_session_mysql.sql
      • dtb_site_control_mysql.sql
      • dtb_trackback_mysql.sql
  • TYPE=InnoDB ;

    とある箇所すべて

    ENGINE=InnoDB ;

    に修正する。

これでとりあえずインストールできた。

ということで、TYPEな理由をご存知な方がいらっしゃればご教示頂ければ幸いです。

コメント

  1. […] ーラはMySQL5.2以降を使用している場合、ストレージエンジン指定の関係でエラーが発生します。この辺の考察を「MySQLのストレージエンジン指定」に記述していますのでご一読ください。 […]

タイトルとURLをコピーしました