MacPortsで入れたMySQLをログイン時に実行させる
ちゃんと設定していた気がするのに、今日会社のMacにログインしてみたらなぜかMySQLが起動していません。なぜかよく分からないけど、起動していないものは仕方がないのでさっさと設定をしてしまいます。で、ついでなのでMySQL 5.1系に変更も兼ねて、インストールからの作業ログをメモメモ。
portからインストール
MySQLパッケージの確認
~ > port search mysql mysql3 databases/mysql3 3.23.58 Multithreaded SQL database server mysql4 databases/mysql4 4.1.22 Multithreaded SQL database server mysql5 databases/mysql5 5.0.51a Multithreaded SQL database server mysql5-devel databases/mysql5-devel 5.1.24-rc Multithreaded SQL database server (以下略)
なんだかずらずらと出てきましたが、とりあえずMySQLサーバーはこの4つ。今回はMySQL 5.1系であるmysql5-develをインストールします。
variantsの確認
~ > port variants mysql5-devel
mysql5-devel has the variants:
universal
darwin_6
darwin_8
server: add a startup item
innodb_plugin: Install the InnoDB plugin Early Adopter release 1.0
どうやら+serverを付けておけば自動で実行してくれる設定ファイルを出力してくれるっぽい。
インストール
~ > sudo port install mysql5-devel +server ---> Fetching mysql5-devel ---> Verifying checksum(s) for mysql5-devel ---> Extracting mysql5-devel ---> Configuring mysql5-devel ---> Building mysql5-devel with target all ---> Staging mysql5-devel into destroot ---> Creating launchd control script ########################################################### # A startup item has been generated that will aid in # starting mysql5-devel with launchd. It is disabled # by default. Execute the following command to start it, # and to cause it to launch at startup: # # sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist ########################################################### Warning: mysql5-devel requests to install files outside the common directory structure! ---> Installing mysql5-devel 5.1.24-rc_0+server ****************************************************** * In order to setup the database, you might want to run * sudo -u mysql mysql_install_db5 * if this is a new install ****************************************************** ---> Activating mysql5-devel 5.1.24-rc_0+server ---> Cleaning mysql5-devel
インストールには結構時間がかかります。
終了後出力されたやつによると、コマンドをひとつ打っておく必要があるっぽい。
自動実行するように設定
~ > sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist
入力しても特に何か表示される訳ではありません。
おまけ、ソケットにアクセスできない!
~ > mysql -u root ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)
ソケットにアクセスできない?なんでだろ。
そもそもファイルはあるのか。
~ > ls /opt/local/var/run/mysql5
あれ、空だ。
所有権どうなってる?
~ > ls -al /opt/local/var/run drwxr-xr-x 3 user _mysql 102 6 9 10:13 mysql5
なぜか所有権がおいらのアカウントになっています。おそらくmysqlユーザーでないとダメだと思うので、変更しておく。
~ > sudo chown _mysql /opt/local/var/run/mysql5
リロードして接続してみる
~ > sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist ~ > sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist ~ > mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.24-rc Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
無事接続できましたとさ。