読者です 読者をやめる 読者になる 読者になる

ちーくんのブログ

プログラミング備忘録

MacでHomebrewを使ってMySQLをインストールする

こんにちは。本日はMacにHomebrewを使用してMySQLをインストールする方法です。

今回は最新(現時点で)のMySQLをインストールしようと思いましたが、ちょっとハマった点があったので備忘録としてまとめておきます。


※Homebrewがインストールされている前提です。インストール方法は下記を参照してください。

chi-kun.hatenablog.com

バージョン

MySQL '5.7.12'


MySQLのインストール

MySQLのインストールはすごく簡単にできます。まずはhomebrewを最新にしてからMySQLをインストールしましょう。

$ brew update
$ brew install mysql

するとインストールが始まるので何も問題なければインストールが完了します。

brew info mysql

brew info mysqlをコマンドで打つとhomebrewでインストールしたMySQLの情報を見ることができます。

$ brew info mysql

すると以下の様な文字が現れると思います。

mysql: stable 5.7.12 (bottled)
Open source relational database management system
https://dev.mysql.com/doc/refman/5.7/en/
Conflicts with: mariadb, mariadb-connector-c, mysql-cluster, mysql-connector-c, percona-server
/usr/local/Cellar/mysql/5.7.12 (13,281 files, 444.8M) *
  Poured from bottle on 2016-05-20 at 15:27:02
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb
==> Dependencies
Build: cmake ✘
Required: openssl ✔
==> Options
--with-archive-storage-engine
	Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
	Compile with the BLACKHOLE storage engine enabled
--with-debug
	Build with debug support
--with-embedded
	Build the embedded server
--with-local-infile
	Build with local infile loading support
--with-test
	Build with unit tests
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

To connect run:
    mysql -uroot

To have launchd start mysql now and restart at login:
  brew services start mysql
Or, if you don't want/need a background service you can just run:
  mysql.server start

表示されてるコマンドを打てば、起動や接続とかできるぜ!みたいな感じのメッセージが表示されます。

とりあえず起動してみる

brew info mysqlのコマンドにも載っているように mysql.server start を打てば起動できます。

$ mysql.server start
Starting MySQL
 SUCCESS!

起動できたよってメッセージがでましたね。

rootユーザーで接続してみる

mysql -uroot というコマンドで接続してみましょう。

$ mysql -uroot

すると...

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.12 Homebrew

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

上記のようなメッセージが表示されると思います。きちんと接続されたようです。
それでは一旦接続を切りましょう。

mysql> のあとに exit と打ちましょう。

mysql_secure_installation

次にパスワードなどの初期設定をしましょう。 mysql_secure_installationコマンドを打つといろいろな設定を対話式で設定できます。

password

MySQLの最新版?をインストールすると validate_password というプラグインがデフォルトでインストールされるみたいです。
これは簡単にいえば緩いパスワードを許可しないようにするプラグインらしいです。

「英大文字小文字数字記号の4種類を1つずつ含み,8文字以上」のパスワードでないとパスワードを設定できないようになっているので各自考えておきましょう。

普通にパスワードを設定すると下記のようなメッセージが表示されます。
途中 y か n を打ってというメッセージが出るので y とコマンドを打ちましょう。

$mysql_secure_installation

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

anonymous users

ここも y とコマンドを打ちます。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

root login

ここも y とコマンドを打ちます。

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

test database

ここも y とコマンドを打ちます。

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

privilege tables

ここも y とコマンドを打ちます。

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

すると All done! とメッセージが出るので以上でセキュリティ関連の設定は完了です。


MySQLをインストールした時に新しいプラグインの validate_password の設定で戸惑ってしまいました。ちょっとわかりづらいところもあったのでメモとして残しておきました。



本日は以上です。