Database JUNKY

MySQL,MariaDBを中心としたブログです

MySQL8でいつの間にか使えなくなったパスワード設定

MySQL8 以前のバージョンの時のユーザアカウント作成周りでは問題なかったのに、MySQL8になってたらやたらシンタックスエラーが出まくる状態の方は、以降を試してみるといいかもしれません(自分のことですが) いつの間にかMySQL8のユーザー周りとか権限周りの設定が厳しくなっている(自分的にはめんどくさくなっている)のでメモしておきました

ユーザーとパスワードを作る

GRANT ALL ON *.* to 'username'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION ;

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 'newpassword' WITH GRANT OPTION' at line 1

MySQL8ではこのように書きます

CREATE USER 'username'@'%' identified by 'newpassword' ;
GRANT ALL ON *.* to 'username'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION ;
FLUSH PRIVILEGES;

パスワード更新

UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='username' ;

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 '('newpassword') WHERE User='username'' at line 1

MySQL8ではこのように書きます

ALTER USER 'username'@'%' IDENTIFIED BY 'newpassword' ;
FLUSH PRIVILEGES;

f:id:hit10231023:20180309104332j:plain