tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

mac OS XにHomeBrewでmysqlインストール。からの設定(mysql_install_db、mysql_secure_installation、my.cnf)やらアンインストールやら

はじめに

macにもmysqlはいってるといざってときにいろいろ試せて便利ですよね。
ネットワークつながってなくても試せたりもしますし。

ってなわけでhomebrewを使ってmacmysqlを入れて試しに使ってみるまでのメモです。
最後は消すとこもおまけ程度に。

ながれ

  1. homebrewいれる
  2. mysqlインストール
  3. mysql設定
  4. mysqlアンインストール

最後は一応きれに消しますw

1. homebrewいれる

こちらは以前書いた記事があるので割愛します。
Mac OS XにHomebrewインストール。command line developer tools入れたり使い方メモったり(install、update、upgradeなど)

2. mysqlインストール

この記事としてはここからが本番ですね。

※ いちおうbrewのバージョン晒す
# brew -v
Homebrew 0.9.5

※ brewもupdateしておく
# brew update

※ brewでインストールする場合のオプションを確認
# brew options mysql
--enable-debug
  Build with debug support
--enable-local-infile
  Build with local infile loading support
--enable-memcached
  Enable innodb-memcached support
--universal
  Build a universal binary
--with-archive-storage-engine
  Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
  Compile with the BLACKHOLE storage engine enabled
--with-embedded
  Build the embedded server
--with-tests
  Build with unit tests

※ インストール
# brew install mysql
==> Installing mysql dependency: openssl
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/openssl-1.0.1j.mavericks.bottle.tar.gz

・・・省略・・・

==> Pouring mysql-5.6.21.mavericks.bottle.tar.gz
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To have launchd start mysql at login:
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
    mysql.server start
==> /usr/local/Cellar/mysql/5.6.21/bin/mysql_install_db --verbose --user=hoge --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --tmpdir=/tmp
==> Summary
🍺  /usr/local/Cellar/mysql/5.6.21: 9621 files, 339M

インストールはこれで終わりです。
brew updateやらオプション確認やらしなければ最後の1コマンドだけです。簡単ですね。

また、==> Caveats(手続き)以下の行に
こんな感じではじめてね的なことが書いてあるのでそのままやってみても良いかもです。

後で見たい感じはこんな感じで打つとまた見れます

# brew info mysql
確認

一応ちゃんとはいったかは確認します

# mysql --version
mysql  Ver 14.14 Distrib 5.6.21, for osx10.9 (x86_64) using  EditLine wrapper

3. mysql設定

インストールは終わったのでいくつか設定します。 主に設定するのは以下

  • 起動確認
  • データディレクトリ初期化スクリプト(mysql_install_db)の実行
  • セキュリティ設定スクリプト(mysql_secure_installation)の実行
  • 設定ファイル(my.cnf)の編集・設置

起動確認

こちらは起動してみて入ってみるという確認だけです。
そもそも起動もできない入れない場合はいったん削除して入れるとこからやり直した方がいいかもですね。

※ 起動する
# mysql.server start

※ 入ってみる
# mysql -u root -p
Enter password: ←パスワードは設定してないので何も打たずEnter

※ 出る
mysql>exit
Bye 

※ 停止する
# mysql.server stop

データディレクトリ初期化スクリプト(mysql_install_db)の実行

mysql_install_dbスクリプトにオプションをつけて実行します。

オプションは後述します。

# unset TMPDIR
# mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
オプションについて
オプション 説明
--verbose プログラム実行に関する情報を出力する(冗長モード)
--user mysqldを実行するときのログインユーザ名の指定 このユーザで、mysqldで作成するファイルやディレクトリの操作を行う
--basedir MySQLをインストールしているディレクトリを指定
--datadir データディレクトリへのパスを指定
--tmpdir 一時ディレクトリ。socketファイルなどが置かれる
補足
  • --user=`whoami`
    --user=`whoami`はバッククオートでコマンドの結果を使ってますが、
    もちろん--user=usernameみたいな文字列指定でも大丈夫です
参考

mysql_install_dbのオプションについてはこちらを参考にさせて頂きました
【MySQL】mysql_install_db オプション

ERROR 2002 (HY000)エラーが出る場合

こちらを参考に
【mysql】mysql_install_dbでERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的なエラーのときの対処法

セキュリティ設定スクリプト(mysql_secure_installation)の実行

データディレクトリの次はセキュリティ設定です。
yesかnoが聞かれますが下記の設定をするかどうかなのでとりあえず全部yesでいきます

  • root パスワードの設定
  • root ユーザーのログインを localhost に制限
  • anonymous ユーザーの削除
  • test データベースの削除

おもむろに叩くだけです。

# mysql_secure_installation

※ 主に聞かれる質問は以下
Set root password? [Y/n] Y

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

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

Reload privilege tables now? [Y/n] Y

設定ファイル(my.cnf)の編集・設置

my.cnfを設置します。インストール先にあった場所に置きましょう。

# mysql --help | grep .cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 

※ この中から今回は/usr/local/etc/my.cnfにmy.cnfつくる
# sudo vi /usr/local/etc/my.cnf
---- vi追記 ----
[mysqld]
character-set-server=utf8

[mysqldump]
default-character-set=utf8

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

※ 設定したら再起動
# mysql.server stop

# mysql.server start
補足

もーちょいちゃんとした設定、とはいえお試し用で、
みたいな方は下記のサイトが参考になりました。
HomebrewでMySQL 5.6をインストール。開発用my.cnfもさらす

4. mysqlアンインストール

いれたばかりですが消しますw
消したいときもありますしね。また、後で書くつもりですがバージョン変えていれたいときもあるでしょう。

※ 一応停止しておく
# mysql.server stop

※ homebrew経由でアンインストール
# brew uninstall mysql

# brew cleanup

※ 余計なファイル類の削除
# sudo rm -rf /usr/local/var/mysql

まとめ

HomeBrew使っての通常インストールについてメモりました。
mysqlがためしたいときも、プログラムからmysqlにつないで試したいときも
なんだかんだでオフラインでも試せる環境があるといいですよね!