macにMySQLを入れたのでメモ

愛用中のMacBook AirにMySQLを入れてみました。
ガンガンにMySQLサーバーとして使うわけでは無いけど、手元にすぐ起動できる環境があったら便利かなと思いまして。

今後テスト・検証用として利用していく予定です。

とりあえず前提条件としては入れ替えたいとき・消したいときにすぐできる環境を構築します。システムを汚すのは好きじゃないです。
今回はできるだけデスクトップ内で完結できるように構築します。

MySQLダウンロード

ダウンロードはこちらから。
Select Platformで「Mac OS X」を選択して自分のmacにあったものをダウンロードします。

001

自分の場合は「バージョン 10.9.2」とか書いてあったけど「10.7」で大丈夫(だと思う)。てかこれ以上のものが無いし。

002

「ダウンロード」をクリックすると「ログインしますか?」的な画面が表示されますが、ここは華麗に「No thanks」で。

003

するとダウンロードがはじまりますので、しばらく待ちましょう。

ダウンロード完了後、アーカイブを展開してデスクトップに移動します。ディレクトリ名が「mysql-5.6.16-osx10.7-x86_64」等と長くなってしまっているので、「mysql-5.6.16」のように短めにします。バージョン番号を残しているのは今後複数バージョンを入れていきたいなぁ、なんて思っているからです。
また、MySQLのデータ用のディレクトリ「mysql-data」を作成します。これはバージョンにかかわらず共通で使用する予定です。

004

MySQL起動設定

デスクトップへの展開が完了したらmy.cnfを設置します。
設置場所は「~/.my.cnf」です。ターミナルからviで保存します。

# my.cnfを新規作成
vi ~/.my.cnf

# 以下の内容を保存
[mysqld]
character-set-server=utf8mb4

datadir=/Users/ユーザー名/Desktop/mysql_data

innodb_additional_mem_pool_size=8M
innodb_buffer_pool_size=256M
innodb_fast_shutdown=0
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M

innodb_log_file_size = 256M
innodb_data_file_path = ibdata1:512M
innodb_file_per_table

join_buffer_size=4M
key_buffer_size=8M
max_allowed_packet=4M
max_heap_table_size=32M
read_buffer_size=1M
read_rnd_buffer_size=2M
sort_buffer_size=2M
tmp_table_size=32M

[mysqld-5.6]
basedir=/Users/ユーザー名/Desktop/mysql-5.6.16

[client]
default-character-set=utf8mb4

細かい設定はどうでもいいんですが、大事なのは「basedir」と「datadir」の設定。先ほどデスクトップに作ったディレクトリに合わせます。また複数バージョンを入れられるようにバージョンごとのグループを作成しています。

以下、ターミナル上での作業になります。

# データディレクトリの初期化
# 権限テーブル等がデータディレクトリに作成されます。
# なんかこれ相対パスでプログラムとか指定しているようなので、
# basedirに移動してから実行しています。
cd ~/Desktop/mysql-5.6.16
./scripts/mysql_install_db --basedir=/Users/ユーザー名/Desktop/mysql-5.6.16 --datadir=/Users/ユーザー名/Desktop/mysql_data

# MySQLサーバー起動
~/Desktop/mysql-5.6.16/bin/mysqld &

# MySQLクライアントコンソール起動
~/Desktop/mysql-5.6.16/bin/mysql -u root

# 無名ユーザー削除
mysql> DROP USER ""@"localhost";
mysql> DROP USER ""@"ローカルドメイン名";
# rootパスワード変更
mysql> SET PASSWORD FOR "root"@"localhost"=PASSWORD('passpass');
mysql> SET PASSWORD FOR "root"@"127.0.0.1"=PASSWORD('passpass');
mysql> SET PASSWORD FOR "root"@"::1"=PASSWORD('passpass');
mysql> SET PASSWORD FOR "root"@"ローカルドメイン名"=PASSWORD('passpass');
# 設定内容反映
FLUSH PRIVILEGES;

# MySQLコンソール終了
mysql> ¥q

# MySQLサーバーシャットダウン
~/Desktop/mysql-5.6.16/bin/mysqladmin -u root -p shutdown
[rootのパスワードを入力]

以上。これで快適ローカルMySQLライフが送れます。

まとめ

結構簡単にインストールできました。MySQL開発チームには「15分ルール」というのがあって、ダウンロードから15分以内には起動・実行できる状態になるようにするのがモットーらしいです(前になんかの記事で読んだ)。

デスクトップ内で完結したかったんだけどmy.cnfはデスクトップ外になってしましましたが。

コメントを残す