MySQLの起動でハマる

仕事と同じ環境をMac Airに作ろうとしたら、ハマりました。しかもネットを検索しましたが、良い解決方法が無いのでメモしておきます。


まずは、MySQL 5.5.8のdmdをダウンロードしてインストール。
(実はHomeBrew版をインストールしたんだけど、システム環境設定から起動できないのでuninstall)


慣れたもので(半年ぐらいでインストールに慣れるのもどうかとは思うが)、以下の順番でインストール。

  • mysql-5.5.8-osx10.6-x86.pkg
  • MySQLStartupItem.pkg
  • MySQL.prefPaneをシステム環境設定にD&Dする。


まあ、ここまでは良いのです。
しかし、システム環境設定->MySQLから起動しない。ずっと赤のstopのまま。いつも通りに動かない。何回インストールをしなおしてもダメ。
仕方がないので眠い目を擦りつつ、調査してみることに。


すると以下の事が分かりました。
CUIで起動する方法も当然ありました。/Library/StartupItems/MySQLCOM/MySQLCOMがそれ。
しかし、起動するとエラー。で、このファイルは何かというと単なるシェルスクリプト
このファイルで何をしているかと言うと、最終的には、/usr/local/mysql/support-files/mysql.serverを呼んでいる
さらのこのファイルもシェルスクリプトとなっており、/usr/local/mysql/bin/mysqld_safeが呼ばれる
さらのこのファイルもシェルスクリプトとなっていて...って面倒くさい。これ以上は関係ないので無視します。


で、結論から言うと、/usr/local/mysql/support-files/mysql.serverを修正すれば良いことが分かりました。
mysqld_safeのパスを取得しているのですが、ここが正しく設定できていないために発生するようです。
対策ですが、mysql.serverの先頭行に

basedir=
datadir=

という行があると思います。ここを修正します。


ここを以下のようにします。

basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data

これで起動するはずです。


あと、/etc/my.cnf、~/.my.cnfに設定をしておけるようにmysql.serverの先頭コメントで書いていますが、自分の環境では~/.my.cnfに設定を書きましたがダメでした。
時間が無かったのでこの方法はこれ以上追っていません。


追記
/etc/my.cnfに設定したらうまく出来ました。
と思ったらだめでした。