MySQL の admin user以外で、ログインできなかった話

管理者権限のないuserでログインするとできなかった。
どうやら、MySQL5.7では、plugin を mysql_native_password にしないとパスワードなしログインはできないデフォルトらしい。

$ mysql -uroot
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
mysql> use mysql


mysql> select Host,User,plugin from user limit 1;
+-----------+------+-----------------------+
| Host      | User | plugin                |
+-----------+------+-----------------------+
| localhost | root | auth_socket |
+-----------+------+-----------------------+
1 row in set (0.00 sec)

mysql> update user set plugin='mysql_native_password' where User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 2  Changed: 1  Warnings: 0

mysql> select Host,User,plugin from user limit 1;
+-----------+------+-----------------------+
| Host      | User | plugin                |
+-----------+------+-----------------------+
| localhost | root | mysql_native_password |
+-----------+------+-----------------------+
1 row in set (0.00 sec)

www.percona.com