MySQL 5.7 ユーザ登録


登録ユーザの確認

5.7.6でpasswordカラムがauthentication_stringに変更されました。

旧バージョン

mysql> SELECT host,user,password FROM mysql.user;

5.7.6以降

mysql> SELECT Host,User,Plugin,authentication_string FROM mysql.user;
+-----------+---------------+-----------------------+-------------------------------------------+
| Host      | User          | Plugin                | authentication_string                     |
+-----------+---------------+-----------------------+-------------------------------------------+
| localhost | root          | mysql_native_password | ***************************************** |
| localhost | mysql.session | mysql_native_password | ***************************************** |
| localhost | mysql.sys     | mysql_native_password | ***************************************** |
+-----------+---------------+-----------------------+-------------------------------------------+
3 rows in set (0.01 sec)

 

ユーザの登録

grantを使うとwarningが出る(登録はできる)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'test-user'@'localhost' IDENTIFIED BY 'testpasswd' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.01 sec)

MySQL5.7からはCREAT USERで登録してからGRANTが推奨される

ASを使うとハッシュされず平文のまま登録
mysql> CREATE USER 'test-user'@'localhost' IDENTIFIED WITH mysql_native_password AS 'testpasswd';

BYを使うとハッシュされる
mysql> CREATE USER 'test-user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'testpasswd';

権限登録
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test-user'@'localhost';

反映
mysql> FLUSH PRIVILEGES;

 

ユーザの削除

DELETEで削除したユーザを再度登録するとエラーがでる。ユーザ削除はDROP USERで行わなければならない。

DROP USER 'test-user'@'localhost';

 

参考

https://yoku0825.blogspot.jp/2015/06/mysql-57.html