macにMySQLインストール

eyecatch

Introduction

Homebrewを使ってインストールします。

Homebrewがインストールされていなければターミナルから以下を実行する。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

インストール実行

インストール実行

$ brew update
$ brew install mysql

インストール確認

$ brew info mysql
mysql: stable 8.0.19 (bottled)
Open source relational database management system
-- 以下略

インストールできたのでサーバを起動します。

$ mysql.server start

Starting MySQL
. SUCCESS!

接続してみます。初期接続時はパスワードなしでできます。

$ mysql -uroot

mysql>

なんとなくテーブル一覧を表示してみます。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

ネットを見ていると、ここでrootにパスワードを設定するみたいなのが多いけど、ローカル環境なので無視。僕の場合、パスワードを忘れるリスクの方が高い(汗

データベースを作る

ここでは「mycms」という名前のデータベースを作ります。

mysql> create databese mycms;
Query OK, 1 row affected (0.01 sec)

mycms用のユーザーを作ります
ユーザー名:cmsuser
パスワード:password

mysql> create user cmsuser@localhost identified by 'password';
Query OK, 1 row affected (0.01 sec)

作ったユーザーに権限を付与します。とりあえず何でもできる権限。

mysql> GRANT ALL PRIVILEGES ON mycms.* TO cmsuser@localhost;

Laravelで使う設定

MySQL8.0からパスワードの形式が「caching_sha2_password」となっています。
Laravelから接続できない場合は設定を変える必要があります。

とりあえず確認

mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| cmsuser          | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

「mysql_native_password」に認証を変更

mysql> alter user cmsuser@localhost identified with mysql_native_password by 'password';

変更確認

mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| cmsuser          | localhost | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)