LionサーバーでMySQLサーバーを使用する

* Lion ServerでインストールされるMySQLは構成が中途半端な印象です。mysqldumpがなかったり、mysqlhotcopyが動かなかったり。別途、インストールした方が安全かもしれません。もしかすると、10.6 Serverからのアップグレードで中途半端に残ったMySQLだったかもしれないです。
* LionにMySQLをインストールして稼働させるまでの手順をまとめました。記事はこちら。「LionでMySQLを稼働させるための5ステップ
Snow Leopardサーバー (Mac OS X 10.6サーバー)ではサーバーの設定アプリから簡単にMySQLサーバーを稼働させることができましたが、Lionサーバー (Mac OS X 10.7サーバー)のServerアプリからMySQLの設定がなくなってしまいました。しかし、LionサーバーにはMySQLが標準インストールされているので、少し手順を踏めばMySQLサーバーを稼働させることができました。そのときのまとめです。

起動できる状態までの準備

必要なディレクトリを作成します。ターミナルで次のように操作します。
(1) 「sudo mkdir /var/mysql」を実行
(2) 「sudo chown _mysql:_mysql /var/mysql」を実行
(3) 「sudo mysql_install_db」を実行
(4) 「sudo chown -R _mysql:_mysql /var/mysql」を実行
(5) 「sudo cp /usr/share/mysql/my-small.cnf /etc/my.cnf」を実行(他の設定ファイルを使っても大丈夫だと思います)

自動起動させるための設定

これで起動できる状態までなったので、マシン起動時に自動的にMySQLサーバーが稼働するように設定します。他のUnix系のOSやLinux系のOSでは、ランレベルで起動用のスクリプトで走らせるように設定しますが、Mac OS X Serverの場合は、Launchctlを使います。次のようなプロパティリストファイルを作成します。(あとでコピーするので、どこに置いても良いです。「ホスト.ドメイン」のところは環境に合わせて書き換えてください)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>ExitTimeOut</key>
<integer>604800</integer>
<key>Label</key>
<string>org.mysql.mysqld</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/mysqld</string>
<string>--socket=/var/mysql/mysql.sock</string>
<string>--user=_mysql</string>
<string>--port=3306</string>
<string>--datadir=/var/mysql</string>
<string>--pid-file=/var/mysql/ホスト.ドメイン.pid</string>
</array>
<key>ServiceIPC</key>
<false/>
<key>StandardErrorPath</key>
<string>/var/mysql/mysql_service.log</string>
<key>StandardOutPath</key>
<string>/var/mysql/mysql_service.log</string>
</dict>
</plist>

ターミナルで次のように操作して、作成したプロパティリストファイルをコピーします。ここでは、「org.mysql.mysqld.plist」という名前でワーキングディレクトリにあるものと仮定します。
(1) sudo cp org.mysql.mysqld.plist /Library/LaunchDaemons
(2) sudo chown root:wheel /Library/LaunchDaemons/org.mysql.mysqld.plist
これでマシンを再起動すると、MySQLサーバーが起動します。マシンを再起動させた後、MySQLが起動できているか確かめるために、ターミナルから次のように入力します。
(1) mysql
ベタですが、起動できていれば次のように表示されます。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.92 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

「quit」を入力して終了します。

最低限の設定

あとは、最低限の設定を行います。まずは、ルートのパスワードを設定します。
(1) 「mysqladmin -u root -password パスワード」を実行。(「パスワード」のところを設定したいパスワードで置き換えます)
(2) 「mysqladmin -u root -p reload」を実行
次に、DBで使う文字コードを「UTF-8」に変更します。「Latin1」のままだと、文字化けしてしまうので。
先ほどコピーした「/etc/my.cnf」ファイルを編集します。管理者権限が必要なので、ターミナルで動く「nano」などで編集したり、sudo付きで、TextEdit.appを起動しても良いです。
(次の設定を追加)

[mysqld]
default-character-set=utf8
character_set_server=utf8
[mysql]
default-character-set=utf8

設定を変更したのでMySQLを再起動します。ターミナルで以下のように入力します。
(1) sudo launchctl stop org.mysql.mysqld
(2) sudo launchctl start org.mysql.mysqld
以上の手順で、LionサーバーでMySQLサーバーを起動できました。

著書紹介

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次