2011年2月4日金曜日

開発環境にMySQLインストール

まずは開発環境にMySQLをインストール。と、言ってもapt-getでインストールするだけ。
# apt-get install mysql_server
で、rootのパスワードなどを設定して終了。のはずが、思わぬところでつまづいた。。

SSDはディスクが少ないのと、繰り返しの書き込みに弱いとのことだったので、datadirをHDDに変更することにした。HDDは『Ubuntu Tips/ハードウェア/内蔵ディスクを増設するには』を参考にマウントしてある。
/usr/lib/mysqlをHDDの/media/disk2/usr/lib/mysqlに移して、my.cnfのdatadirを/media/disk2/usr/lib/mysqlに変更したところmysqlが起動しなくなってしまった。/var/log/mysql/error.logには下記のエラー。
110204 17:37:02 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110204 17:37:02 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110204 17:37:02  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
色々調べてみたり、設定を変更したりを繰り返したが結局datadirを変更しては起動はできず。。『mysqlのdatadirの変更について』によるとSELinuxが有効でdatadirを変更すると同様のエラーが起きる模様。デフォルトのままいじっていないが、ubuntuではSELinuxは有効になってるのかを調べていたところ、力尽き断念。SSD+HDDなんてことしてなければdatadirを変更しようなんて思わなかったのになぁと思いつつ。