これまでMySQL 5.7を使っていました。
今回初めてMySQL 8.0 を使ってみたのですが、コマンドエラーが沢山発生して困りました。
さすが、version 5.7 ⇒ version 8 だけあって変更点が多数あるようです。
MySQL 8 でGRANT構文でユーザー作成するとエラー
MySQL 5系で普通にユーザー作成に使っていた、Grant構文でユーザーを作成します。
1 |
mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'user1'@'localhost' IDENTIFIED BY 'password1'; |
するとエラーが発生しました。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'password1'
MySQL 8ではCREATE USERでユーザー作成
問題点と解決策は次の通りです。
MySQL 8ではGRANTコマンドで暗黙的にユーザー作成することは出来ません。
代わりにCREATE USERコマンドを使います。
具体的には次の通りです。
1 2 3 |
mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1'; mysql> GRANT ALL ON mydb.* TO 'user1'@'localhost' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; |
コメント