MacPortsを使ってMySQLをインストールする
今後は、MySQLは、MacPortsを使った方がバージョンアップが簡単にできるので、移行しちゃいます。
インストールは、以下の通り。
$ sudo port install mysql5 +server
起動、停止は以下のコマンドを使います。
$ sudo /opt/local/share/mysql5/mysql/mysql.server start $ sudo /opt/local/share/mysql5/mysql/mysql.server stop
自動起動は、ローカル環境では必要ないので現時点では特に何もしません。(必要になったら後日調べます)
いくつかのディレクトリが作成およびパーミッションの設定を行う必要があるので、事前にやっておきます。
$ sudo mkdir /opt/local/var/db/mysql5/ $ sudo mkdir -p /opt/local/var/run/mysql5/ $ sudo chown mysql:mysql /opt/local/var/db/mysql5/ $ sudo chown mysql:mysql /opt/local/var/run/mysql5/
MySQLのシステムテーブルを作成します。
$ sudo -u mysql mysql_install_db5
MySQL Serverを起動します。
$ sudo /opt/local/share/mysql5/mysql/mysql.server start Starting MySQL ... SUCCESS!
rootのパスワードを忘れずに変更しておきます。
$ /opt/local/lib/mysql5/bin/mysqladmin -uroot password '************'
接続テストを行います。
$ /opt/local/lib/mysql5/bin/mysqladmin -uroot -h lucifer.local -p version Enter password: /opt/local/lib/mysql5/bin/mysqladmin Ver 8.42 Distrib 5.1.42, for apple-darwin10.2.0 on i386 Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 5.1.42-log Protocol version 10 Connection lucifer.local via TCP/IP TCP port 3306 Uptime: 9 min 28 sec Threads: 1 Questions: 7 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.12
セキュアな環境を構築するためにやっておきます。(これは必須ではないです)
$ sudo /opt/local/lib/mysql5/bin/mysql_secure_installation
MySQL(公式サイト配布版パッケージ)をアンインストールする
MySQLの公式サイト配布版パッケージが、Snow Leopardに対応していないようなので、アンインストールします。
手順は以下の通りになります。
$ sudo rm -rf /usr/local/mysql-5.1.28-rc-osx10.5-x86/ $ sudo rm -rf /Library/StartupItems/MySQLCOM/ $ sudo rm -rf /Library/Receipts/mysql-5.1.28-rc-osx10.5-x86.pkg/
あと /Library/PreferencePanes/MySQL.prefPane ファイルも削除すべきらしいけど、最初から見つからなかったので無視しました。
このままだと、System PreferencesにMySQLが残ってしまいます。気持ち悪いので、削除してしまいます。(コンテキストメニューから削除が選択できます)
MacPorts版MySQLを自動起動する
以下のサイトを見る限り、Mac OS X以降では、launchdを使って自動起動するのが流儀らしいみたいです。
具体的には、/Library/LaunchDaemons/ 以下にplistファイルを作成し、launchctlコマンドでplistファイルをロードします。
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
が、残念ながらMacPortsでインストール後には、該当のplistファイルが存在しなかったので、手動でplistファイルを用意します。
念のため /Library/LaunchDaemons/ 以下に配置されているplistファイルも確認してみます。ちょうどMacPortsにてインストールしたApache2用のplistファイルがあったので参考にします。
$ ls /Library/LaunchDaemons/ | egrep -e "apache2" lrwxr-xr-x 1 root wheel 76 12 1 00:36 org.macports.apache2.plist@ -> /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist
/opt/local/etc/LaunchDaemons/ 以下にplistファイルを配置しているので、これも流儀にしたがっておきます。
嬉しいことにMySQL用のplistファイルを公開しているサイトがあるようなので、それをダウンロードして使います。
$ sudo mkdir -p /opt/local/etc/LaunchDaemons/org.macports.mysql5 $ cd /opt/local/etc/LaunchDaemons/org.macports.mysql5 $ sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/mysql5.wrapper $ sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/org.macports.mysql5.plist $ sudo chown root:wheel /opt/local/etc/LaunchDaemons/org.macports.mysql5/* $ sudo chmod 755 /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper $ sudo chmod 644 /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist $ sudo ln -s /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist /Library/LaunchDaemons/org.macports.mysql5.plist
その後、マシンをリブートして自動起動していることを確認します。
$ ps ax | grep mysql 51 ?? Ss 0:00.02 /opt/local/bin/daemondo --label=mysql5 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper restart ; --pid=none 67 ?? S 0:00.03 /bin/sh /opt/local/lib/mysql5/bin/mysqld_safe --datadir=/opt/local/var/db/mysql5 --pid-file=/opt/local/var/db/mysql5/localhost.pid 165 ?? S 0:01.67 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql5 --user=_mysql --log-error=/opt/local/var/db/mysql5/localhost.err --pid-file=/opt/local/var/db/mysql5/localhost.pid --socket=/opt/local/var/run/mysql5/mysqld.sock --port=3306 573 s000 U+ 0:00.00 grep mysql