2014年2月19日水曜日

Mac OS X MavericksにMySQLをインストールしてみる

ApacheとPHPは用意した……後足りないのは……?


Mac OS X MavericksにApacheとPHPをインストールしてWebアプリの開発環境を作ってみる」というエントリで、とりあえずPHPなWebアプリの開発環境は構築できた。

できたんだけど、何かが足りない……。なんだろう……。

あ、そうだ。データベースだ……。

------------------------------------
【2014/09/04 00:00 追記】
Homebrewとか使ってる人は、そっちで入れた方が楽かもしれないよ!

他のパッケージを入れたときに依存関係でMySQL一式がインストールされちゃったりすることもあるから、その時にいろいろ悩まなくて済むかも!
------------------------------------

さて、Mavericks用のMySQLはどこかな?


PHPで使うデータベースといえば、やはりMySQLだろう。PostgreSQLやNoSQL系もあるけど、やはり{L|W|M}AMP構成にしておくのが無難だよね〜……ってことで。

でもって、MySQLのオフィシャルサイトにお出かけしてみるのだけども……Mac OS X版のパッケージは10.7向けのものしかないらしい。ふむ。


まあ、それをインストールしても動くだろう。でも、他にいいのないかな……と思って探した結果見つかったのが下記のページ。


ふむふむ。結局のところ、先の公式サイトからダウンロードしてインストールするのと変わりはないっぽいけど、簡単さで言えばこちらの方が上だな。これはよさげ。

さっそくDo it!


ってことで早速インストールしてみる。

まずはターミナルを開いて、サイトに書いてあるとおり「bash <(curl -Ls http://git.io/eUx7rg)」というコマンドを実行する。手元の環境で実行してみた結果が下記の通り。括弧の部分が自分で入力したところで、青地の部分は隠匿すべき重要情報ね。

$ bash <(curl -Ls http://git.io/eUx7rg)
Downloading MySQL Installers ... may take a few moments
######################################################################## 100.0%
...
...
Installing MySQL, administrator password required ...
Password:(ログインユーザのパスワードを入力)
installer: Package name is MySQL 5.6.15-community for Mac OS X
installer: Installing at base path /
installer: The install was successful.
...
...
Installing MySQL start up items...
installer: Package name is MySQL Startup Item
installer: Installing at base path /
installer: The install was successful.
...
...
Click Install to install the MySQL preferance pane
...
...
...
Starting MySQL
.. SUCCESS!
Setting MySQL root Password to 〜ここにパスワードが表示される〜
Placing password on desktop...
...
...
BASE PERFORMANCE MY.CNF IS JUST A GENERIC SUGGESTION FOR PERFORMANCE
YOUR RESULTS MAY VARY AND YOU MAY WANT TO FURTHER TUNE YOUR MY.CNF SETTINGS
BASE PERFORMANCE MY.CNF INCREASES BUFFERS/MEMORY USAGE
8GB+ RAM IS RECOMMENDED FOR BASE PERFORMANCE MY.CNF
...
DO YOU WANT TO LOAD A BASE PERFORMANCE MY.CNF FILE? [y/N](nと入力)
DO YOU WANT TO AUTOMATICALLY INSTALL SEQUEL PRO? [Y/n](yと入力)
######################################################################## 100.0%
Sequel Pro is now in your Applications folder!


ALL DONE!  Install Sequel Pro or phpmyadmin to administer MySQL
Log off and log back in for 'mysql' to be recognized as a command in terminal

と、このようにとても簡単にインストールできた。所要時間でいえば5分もかかってないレベル。基本見てるだけ。

ちょっと解説(という名の個人用メモ)


Click Install to install the MySQL preferance pane


途中の「Click Install to install the MySQL preferance pane」のところで、「システム環境設定」のパネルが開き、下記のようなダイアログが表示される。とりあえずログイン中のユーザだけが使えれば良いので、そのまま「インストール」をクリックした。


その後、MySQLの設定画面に移動する。下記の通り現在の起動状態と起動/停止制御のボタン、そしてスタートアップ時に自動的にMySQLを起動するかどうかを設定するチェックボックスがある。


ボクは常に使うわけじゃないので、「Stop MySQL Server」のボタンを押してMySQLを停止させ、チェックボックスのチェックを外して自動起動しないようにしてみた。

ちなみにこの設定は「システム環境設定」のパネルに登場する「MySQL」のアイコンをクリックすればいつでも表示されるのでご安心を。


あ、あとファイアウォールへのルール追加のダイアログも表示される。とりあえずボクは「許可」を選択してみた。


この設定は「システム環境設定 > セキュリティとプライバシー > ファイアウォールオプション」から設定変更できるので、変更したくなっても安心。


Setting MySQL root Password to


ターミナル上に突如として表示されるMySQLのパスワード。うっかり忘れてしまっても大丈夫。デスクトップ上に「MYSQL_PASSWORD」ファイルとして保存されている。


パスワードはこのまま使っても良いのだけれども、後で変更しておいた方が使い勝手的にいいと思われる。

勝手に保存されるものとしては、「Downloads」内に「MySQL.prefpane」というファイルが作成されていたりする。これは「システム環境設定」に追加するためのファイルのようなので、インストールが無事終了したら削除してよさげ。


DO YOU WANT TO LOAD A BASE PERFORMANCE MY.CNF FILE?


デフォルトのmy.cnfファイルを読み込ませるかどうかを問われている(*1)。推奨は「N」(=読み込ませない)らしい。ちなみにエンターだけではダメで、ちゃんと「n」とか「no」とか入力しないといけない。

DO YOU WANT TO AUTOMATICALLY INSTALL SEQUEL PRO?


Sequel Proを自動的にインストールするかどうかを問われている。推奨は「Y」(=インストールする)らしい。こちらもエンターだけではダメで、ちゃんと「y」とか「yes」とか入力しないといけない。

ちなみにSequel ProはMac OS X用のデータベース管理ソフト。他に何も使ってないなら、インストールしておいて損はない(*2)と思われる。


コマンドによるMySQLの起動と停止



「システム環境設定」からしか起動と停止はできない……訳ではなく、ちゃんとコマンドでできるようになってる。

具体的には

sudo /usr/local/mysql/support-files/mysql.server start

で起動、

sudo /usr/local/mysql/support-files/mysql.server stop

で停止。

頻繁に使うようであれば、パスを通しておいた方が便利。

MySQLの各種コマンドはいずこに?


mysqlコマンドをはじめとしたMySQL関連のコマンドは、「/usr/local/mysql/bin」内に存在する。

一応、~/.bash_profileにパスの設定が勝手に追加(*3)されるので、すでにパスの設定をしている人なんかはチェックしておいた方がいいかも。変なところでハマらないように。

アンインストール方法は?


サイト上に明示はされていないっぽいんだけども、実際に実行されるスクリプトの内容を読む限り、「/usr/local/mysql*」と「/var/mysql」を削除すればよさげ。

「システム環境設定」に作成されたアイツについては、アイコンの上でCtrlを押しながらクリックすると出るサブメニューから消せるっぽい。


あとは~/.bash_profileや~/.profileなど、とにかくその手のファイルに残骸が残っていないかどうかを忘れずに確認すること。

あ、そうそう。Sequel Proについては普通のアプリケーションなので、別途普通に削除(*4)すること。

アップデート方法は?


こちらもサイト上には明示されてないっぽいんだけど、やっぱりバックアップ取った上でアンインストール→再インストールの流れかなぁ……。インストールプロセスを見てみる限り、アンインストールはムリにしなくてもよさそうに見えるけど。

ボク的には所詮開発用DBなので、いつ消えても支障ないからいいんだけど。まあ、どう転んでもバックアップだけ取ってからやればそんなにひどいことにはならないだろうと思う。

Sequel ProからインストールしたMySQLに接続できないんだけど!


インストール直後、Sequel ProからインストールしたMySQLに接続しようとすると、標準/ソケットともに接続できなかった。CLI版のクライアント(*5)でログインはできるのに……。

まあ、どうせパスワードも変えたかったし……ということで、CLI版のクライアントからrootでログインした後に下記を実行してみた。あ、「(任意のパスワード)」のところは自分の好きなパスワードに置き換えて読んでね!

GRANT ALL ON *.* TO root@"localhost" IDENTIFIED BY '(任意のパスワード)' WITH GRANT OPTION;
GRANT ALL ON *.* TO root@"127.0.0.1" IDENTIFIED BY '(任意のパスワード)' WITH GRANT OPTION;
GRANT ALL ON *.* TO root@"::1" IDENTIFIED BY '(任意のパスワード)' WITH GRANT OPTION;
FLUSH PRIVILEGES;

手元の環境では、上記実行後にCLI版のクライアントおよびSequel Proからの接続が確認できている。たぶん「root@localhost」のユーザにしかパスワードがセットされていないせいだと思う。

これでMAMP環境のできあがり!


というわけで、これでとりあえずベーシックなMAMP(Mac OS X, Apache, MySQL, PHP)の環境は整った。

後は普通にEnjoy Hacking!いや〜、これだけ簡単に環境が構築できるMacって本当にいいものですね!ではサヨナラ!サヨナラ!サヨナラ!(*6)

--------------------------------------------
[2014/07/11 01:00 追記]

前回インストールしたApacheと今回インストールしたMySQLについて、起動や終了を簡単におこなうためのシェルスクリプトを作ってみたので晒しておく。これはこれらの記事を書いた後にボクがいろいろ試行錯誤しながら作って実際に使ってるもの。それなりに使えるはず。


--------------------------------------------


*1:必要な設定自体は「/usr/local/mysql/mmv.cnf」に書き込まれるので、よほどいいマシンを使ってるのでなければ「N」でイイっぽい
*2:たぶんphpMyAdminとか用意するよりも幸せになれる
*3:ただし、support-filesの方は追加されないので、そちらが必要なら手動対応ね
*4:ボクはAppCleanerを使ってるのでそいつでアンインストールするよ!
*5:mysqlコマンドの事ね
*6:(c) 淀川長治さん

0 件のコメント:

コメントを投稿