インストール MySQL/5.0.22 + DBD::mysql/3.0006 on Cygwin

MySQL Serverのインストール

http://dev.mysql.com/downloads/ からWindows用のものをダウンロードする。
Windows Essentialsでも大丈夫。ただしEssentialsはMySQL-Maxなどを含まないビルドなので、InnoDBが使いたいなら普通のやつをどうぞ。

・noinstall版の場合は任意の場所に展開する。
インストーラー版の場合は少なくとも「MySQL Server」を選択しておけばOK。「Client Programs」は後でビルドするので不要。

インストール先はC:\Cygwin\usr\local\mysqlにしてみた。別にどこでもいいです。単なる趣味です。

MySQL Clientのインストール

$ ./configure --without-server --prefix=/usr/local/mysql
$ make
$ make install
$ cp ./include/mysqld_error.h /usr/local/mysql/include/mysql/

--prefix=/usr/local/mysqlは別にどこでもいいです。単なる趣味です。もし「Client Programs」を入れていたら上書きされるので、それが嫌ならインストール先を変えること。
mysqld_error.hは--without-serverだとインストールされないけどDBD::mysqlのビルドに必要なので手作業でコピー。

動作テスト

$ /usr/local/mysql/bin/mysql -h 127.0.0.1 -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.22-community

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

mysql>

127.0.0.1じゃなくてlocalhostと書くとUNIX Domain Socketが使われてしまうので注意。

DBD::mysql

$ PATH="/usr/local/mysql/bin:$PATH" cpan
cpan> look DBD::mysql
$ perl Makefile.PL --testhost=127.0.0.1 --testuser=root
$ make
$ make test
$ make install

mysql_configにパスを通してからperl Makefile.PLをすること。

サービスとしてインストール

$ cp /usr/local/mysql/my-small.ini /usr/local/etc/my.ini
$ /usr/local/mysql/bin/mysqld --install MySQL --defaults-file='C:\Cygwin\usr\local\etc\my.ini'