MySQLをインストール後、ユーザーを作成するまでの手順
homebrewでmysqlをインストール後からの話です。
#サーバー起動 mysql.server start #サーバーログイン確認 mysql -uroot #mysqlから抜ける mysql> exit #mysqlのセキュリティなど設定 mysql_secure_installation
secure_installationでやった処理忘れました。すみません。全部Yesで良いですし、パスワードを設定したりします。
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 '<パスワード>’;
でユーザーを作り直したら権限を与えることが出来た。
ホスト名を忘れずに...