たのしい駆動開発

たのしいアウトプットの場所

MySQLをインストール後、ユーザーを作成するまでの手順



homebrewでmysqlをインストール後からの話です。

#サーバー起動
mysql.server start
#サーバーログイン確認
mysql -uroot
#mysqlから抜ける
mysql> exit
#mysqlのセキュリティなど設定
mysql_secure_installation

secure_installationでやった処理忘れました。すみません。全部Yesで良いですし、パスワードを設定したりします。

mysqlにパスワード設定後mysqlにログインする

mysql -uroot -p



パスワードの長さ、ポリシーを変更する

mysql> set global validate_password.length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.policy=LOW;
Query OK, 0 rows affected (0.00 sec)

SHOW VARIABLES LIKE 'validate_password%';



ユーザーを作成する

CREATE USER '<ユーザー名>'@'localhost' IDENTIFIED BY '<パスワード>’;
GRANT ALL PRIVILEGES ON <db名>.* TO '<ユーザー名>'@'localhost';



権限の確認。

mysql> show grants for '<ユーザ名>'@'localhost';
+----------------------------------------------------+
| Grants for <>@localhost                            |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `<>`@`localhost`             |
| GRANT ALL PRIVILEGES ON `tm`.* TO `<>`@`localhost` |
+----------------------------------------------------+





ここからはMySQLのユーザー作成で躓いた話。

CREATE USER '<ユーザー名>'@'localhost' IDENTIFIED BY '<パスワード>’;

ではなく、

CREATE USER '<ユーザー名>' IDENTIFIED BY '<パスワード>’;

を実行してしまったことで、ユーザーにうまく権限を与えることが出来なかった。

mysql> GRANT ALL ON <db>.* to '<username>'@'localhost';
ERROR 1410 (42000): You are not allowed to create a user with GRANT

こうなる。

仕方なく、
DROP USER <さっき作ったユーザー名>;
でユーザーを削除し、再度
CREATE USER '<ユーザー名>'@'localhost' IDENTIFIED BY '<パスワード>’;
でユーザーを作り直したら権限を与えることが出来た。

ホスト名を忘れずに...