ちょっと気取ってDarwinPortsでMySQLをインストール。

Rubyのお勉強を始めたのは、Webアプリケーションを作ってWeb2.0!!って感じだったので、となるとバックエンドのデータベースが必要となるわけで、数多あるRDBMSの中から何となく普及率が一番高そうと言う不純な理由でMySQLを選択し、インストールにチャレンジ。
開発元インストーラは配布されていますが、UNIXな気分を味わってみたかったので、DarwinPortsを選択しましたというわけで、まずはDarwinPortsをインストール。こちらを参考にさせていただき、さくっとインストール完了。怖くないので君もチャレンジだ。
まずはDarwinPortsMySQLが確認しなくてはなりません。右よし左よしって。

port search mysql

DarwinPortsでパッケージを探すにはportコマンドのsearchオプションを使用します。つまりこれはmysqlがあるかどうかを確認しているわけです。

mysql databases/mysql @3.23.58 Multithreaded SQL database server
mysql3 databases/mysql3 @3.23.58 Multithreaded SQL database server
mysql4 databases/mysql4 @4.1.20 Multithreaded SQL database server
mysql5 databases/mysql5 @5.0.22  Multithreaded SQL database server

英語が大量に表示され「敵性言語!!」と焦るかもしれませんが、このように表示されるので、MySQLがインストールできることが確認できました。
さて、mysqlには複数のバージョンがあるようなので、どれをインストールするか悩みますが、畳と女房とソフトウェアは新しい方が良いと言うわけで、

sudo port install mysql5

バージョン5をインストールしてみます。

--->  Unpacking tgz archive for mysql5 5.0.22_0+darwin_8
--->  Installing mysql5 5.0.22_0+darwin_8
--->  Activating mysql5 5.0.22_0+darwin_8

DarwinPortsが何か頑張っている様です。しばらく時間がかかるようなので、コーヒーを飲んだり、腕立てしたりして待ちます。

--->  Cleaning mysql5

これが表示されたインストール完了。やほーい、終わった終わったと思いましたが、先日購入した本を読むとまだ何か作業が必要とのこと。あぁ、面倒だ、こんなことならインストーラを使っておけば良かった後悔しそうですが、ここまで来て諦めると、中学最後の大会を思い出しそうなので、作業を続けます。

 sudo /opt/local/bin/mysql_install_db5 --user=mysql

何やらMySQLが自身の情報を管理するためのDB、テスト用のDBがインストールされるようです。
まだまだ続きますぞ。

sudo chown -R mysql /opt/local/var/db/mysql5/
sudo chgrp -R mysql /opt/local/var/db/mysql5/

MySQLがデータの保存に使うらしいディレクトリの所有者をmysqlアカウントに変更します。これくらいやってくれよと思いますが、贅沢は敵ですぞ。
これで準備完了、起動してみます。

sudo /opt/local/bin/mysqld_safe5 --user=mysql

むっむむむ。エラーが表示され起動できません。
伊達に30年生きていません、ぐっと堪えてエラーメッセージを読むと、

mkdir: /opt/local/var/run/mysql5: Permission denied
chown: /opt/local/var/run/mysql5: No such file or directory

と、ありますので従いディレクトリを作成し、所有者をmysqlアカウントに変更し、レッツリベンジ。

sudo mkdir /opt/local/var/run/mysql5
sudo chown /opt/local/var/run/mysql5/
sudo /opt/local/bin/mysqld_safe5 --user=mysql

無事に起動できました。
これで喜んではいけません、接続できなければ単なるリソースの無駄遣い。

/opt/local/bin/mysql5

MySQLに接続です。

Welcome to the MySQL monitor.  Commands end with ; or ?g.
Your MySQL connection id is 1 to server version: 5.0.22

Type 'help;' or '?h' for help. Type '?c' to clear the buffer.

mysql> 

どうやら接続できたようです。
まだまだ設定しないといけないことがあるようですが、ミサに行かないといけないので今日はここまで。ミサは嘘だけど。

MySQL 徹底入門 第2版

MySQL 徹底入門 第2版