Mac OS X に MacPorts で MySQL をインストールする
これまで XAMPP で MySQL を使えるようにしていたが、開発用に MacPorts で MySQL をインストールする。
MySQL をインストールする
% sudo port install mysql5-server ---> Computing dependencies for mysql5-server ---> Fetching mysql5-server ---> Verifying checksum(s) for mysql5-server ---> Extracting mysql5-server ---> Configuring mysql5-server ---> Building mysql5-server ---> Staging mysql5-server into destroot ---> Creating launchd control script ---> Activating mysql5-server @5.1.45_0 ---> Cleaning mysql5-server
これでインストールは完了する
データベースを初期化する
新規で MySQL をインストールしたのならば、まずはデータベースを作成する。
MacPorts でインストールをした際に下記のメッセージが表示されているので実行する。
---> Installing mysql5-server @5.1.45_0 ****************************************************** * In order to setup the database, you might want to run * sudo -u _mysql mysql_install_db5 * if this is a new install ******************************************************
この内容の意味は、sudo コマンドを利用して (root や自分の権限ではなく) mysql ユーザーとして MySQL のデータベースを初期化するという内容になる。
上記のコマンドを実行する。
% sudo -u _mysql mysql_install_db5 Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password' /opt/local/lib/mysql5/bin/mysqladmin -u root -h MacBookPro.local password 'new-password' Alternatively you can run: /opt/local/lib/mysql5/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /opt/local/mysql-test ; perl mysql-test-run.pl Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!
実行後に表示されるメッセージには、
- Mac OS X 起動時に MySQL を起動させるための注意
- MySQL に接続するためのコマンド
- より安全な MySQL のデータベースをインストールする方法
(おそらく MySQL に接続するためのパスワードが入力済みなのだと思う) - コマンドから MySQL を起動する方法
などが表示される。
MySQL を起動する
インストール時に表示される起動方法ではなく、次のコマンドで起動させる。
% sudo /opt/local/share/mysql5/mysql/mysql.server start
Starting MySQL
SUCCESS!
インストール時に表示される起動方法でもいいが、「&」を追加してバックグラウンドで動くようにした方がいい。
% sudo /opt/local/lib/mysql5/bin/mysqld_safe & [2] 310 % 100323 20:31:56 mysqld_safe Logging to '/opt/local/var/db/mysql5/MacBookPro.local.err'. 100323 20:31:56 mysqld_safe Starting mysqld daemon with databases from /opt/local/var/db/mysql5 100323 20:32:22 mysqld_safe mysqld from pid file /opt/local/var/db/mysql5/MacBookPro.local.pid ended [2] + done sudo /opt/local/lib/mysql5/bin/mysqld_safe
起動を確認する。
% ps aux | grep mysql | grep -v grep root 160 98.7 0.0 2436184 1668 s001 RN 8:07PM 29:39.18 sudo /opt/local/share/mysql5/mysql/mysql.server start root 510 0.0 0.0 2435464 852 s002 S+ 8:37PM 0:00.03 /bin/sh /opt/local/lib/mysql5/bin/mysqld_safe _mysql 553 0.0 0.5 2510852 18996 s002 S+ 8:37PM 0:00.05 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql5 --user=_mysql --log-error=/opt/local/var/db/mysql5/MacBookPro.local.err --pid-file=/opt/local/var/db/mysql5/MacBookPro.local.pid
MySQL を停止する場合
停止する場合は下記のコマンドを実行する。
% sudo /opt/local/share/mysql5/mysql/mysql.server stop
Shutting down MySQL
... SUCCESS!
MySQL に接続できるユーザーの権限を設定する
MySQL インストール直後は、ユーザー名やパスワードがなくても接続できる状態のため、名無しのユーザーの接続を拒否し、パスワードを入力して接続するように変更する。
% /opt/local/bin/mysql5 -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> USE `MySQL`; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> SELECT `User`, `Host`, `Password` FROM `USER`; +------+------------------+----------+ | User | Host | Password | +------+------------------+----------+ | root | localhost | | | root | MacBookPro.local | | | root | 127.0.0.1 | | | | localhost | | | | MacBookPro.local | | +------+------------------+----------+ 5 rows in set (0.00 sec) mysql>
root ユーザーのパスワードを登録する。
mysql> SET PASSWORD FOR 'root'@'localhost' = password('yourpassword'); Query OK, 0 rows affected (0.00 sec) mysql> SET PASSWORD FOR 'root'@'MacBookPro.local' = password('yourpassword'); Query OK, 0 rows affected (0.00 sec) mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = password('yourpassword'); Query OK, 0 rows affected (0.00 sec) mysql> SELECT `User`, `Host`, `Password` FROM `USER`; +------+------------------+-------------------------------------------+ | User | Host | Password | +------+------------------+-------------------------------------------+ | root | localhost | *0480E553996615211F49D24A263ACACD723FB599 | | root | MacBookPro.local | *0480E553996615211F49D24A263ACACD723FB599 | | root | 127.0.0.1 | *0480E553996615211F49D24A263ACACD723FB599 | | | localhost | | | | MacBookPro.local | | +------+------------------+-------------------------------------------+ 5 rows in set (0.00 sec) mysql>
次に、名無しのユーザーを削除する。
mysql> DELETE FROM `User` WHERE `User` = ''; Query OK, 2 rows affected (0.00 sec) mysql> SELECT `User`, `Host`, `Password` FROM `USER`; +------+------------------+-------------------------------------------+ | User | Host | Password | +------+------------------+-------------------------------------------+ | root | localhost | *0480E553996615211F49D24A263ACACD723FB599 | | root | MacBookPro.local | *0480E553996615211F49D24A263ACACD723FB599 | | root | 127.0.0.1 | *0480E553996615211F49D24A263ACACD723FB599 | +------+------------------+-------------------------------------------+ 3 rows in set (0.00 sec) mysql>
これで、一番最初の初期設定は完了。
MySQL をデーモンとして登録する
これもインストール時に表示されるメッセージ通りにコマンドを実行する。
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
デーモンの対象から外したい場合は、
% sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
と実行する。