HomebrewでMacにLAMP環境を構築 #02:MySQL

HomebrewではMySQL以外にSQLiteやPostgreSQLといったものが用意されていますが、今回は普通にMySQLを使います。

MySQLのインストール

$ brew install mysql
※依存関係はcmake、makedepend、openssl、pkg-config、xz 

MySQLの起動確認

$ mysql.server start
$ mysql.server stop
$ mysql.server restart 

もし、起動時に以下のようなエラーが出ることがあります。

ERROR! The server quit without updating PID file (/usr/local/var/mysql/PC名.local.pid). 

方法としては、以下の方法があります。

プロセスを切る

$ ps -ax | grep mysql
出てきたプロセスIDを確認 

オーナーを変更する

$ sudo chown -R ユーザ名:_mysql /usr/local/var/mysql/ 

この方法でもエラーが出る場合は、ログを確認して対処しましょう。

$ mysqld_safe 

初期データベースのインストール

$ unset TMPDIR
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

別になくても動くんですが一応。

rootパスワードの設定

$ mysqladmin -uroot password
New password:パスワード
Confirm new password:パスワード

rootでログイン・ログアウト

$ mysql -uroot -p
Enter password:パスワード
mysql> exit 

セキュリティ設定

$ mysql_secure_installation
Enter current password for root (enter for none):先ほど設定したrootパスワード 

rootのパスワードを変更しますか?

Change the root password? [Y/n] n 

anonymousユーザを削除しますか?

Remove anonymous users? [Y/n] Y 

rootのリモートアクセスを禁止しますか?

Disallow root login remotely? [Y/n] Y 

testデータベースを削除しますか?

Remove test database and access to it? [Y/n] Y 

テーブルの更新を行いますか?

Reload privilege tables now? [Y/n] Y 

my.cnfの編集

参考サイト

設定ファイルは標準では存在していませんので、サンプルファイルから持ってくるか、項目を手動で入力する必要があります。 my.cnfの場所はサーバ用やユーザ用等複数箇所あります。

$ mysql --help | grep my.cnf
/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf 

今回はHomebrewのファイルが置かれている「/usr/local/etc/my.cnf」に配置します。
特に細かい編集はせず、文字コードの統一化程度にとどめます。

デフォルトではmy.cnfが存在しないので作成します。

$ vi /usr/local/etc/my.cnf

[mysql]
show-warnings

[mysqld]
character-set-server = utf8 

なお、今後のバージョンでは「default-character-set」は廃止の方向らしいので、「character-set-server」だけ用意しておきます。
できたらMySQLをrestartしてログイン後、以下のコマンドで文字コードが変更されたか確認してください。

mysql> status
(中略)
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
(中略) 

【番外1】Mysqlのアンインストール

$ brew uninstall mysql
$ brew cleanup 

これだけではデータベースファイルが残るので、以下のコマンドを叩いてしっかり削除します。

$ sudo rm -rf /usr/local/var/mysql/ 

【番外2】MySQLを自動起動に登録

Mac起動時にMySQLも起動する場合は、plistファイルを所定のフォルダにコピーする必要があります。

$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents 

自分は必要なときにLaunckRocketで起動することにしたので、登録していません。

【番外3】権限エラーについて

MySQLのインストール時に以下のようなエラーが出る場合があります。

Error: Could not symlink share/man/man8/mysqld.8 

これがあるとMySQLのパスも通らなくなるので起動ができません。 権限のエラーが原因なので、以下のコマンドで修正します。

$ sudo chown ユーザ名:グループ /usr/local/share/man/man8 

オーナーに関してはmanフォルダに書かれているオーナーに合わせて下さい。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中