现场还原:用root用户在Linux上安装mysql后,用Linux的root用户可以登录mysql,但普通用户无法登录,提示错误:ERROR 1698 (28000): Access denied for user 'root'@'localhost'

一、mysql用root登录mysql

选择以mysql命名的数据库,用以下命令查看user表:

select host,user,plugin from user;

结果如下:

+-----------+---------+-----------------------+

| host | user | plugin |

+-----------+---------+-----------------------+

| localhost | root | unix_socket |

+-----------+---------+-----------------------+

二、修改plugin属性为mysql_native_password

update user set authentication_string=PASSWORD('000000'), plugin='mysql_native_password' where user='root';

结果如下:

+-----------+---------+-----------------------+

| host | user | plugin |

+-----------+---------+-----------------------+

| localhost | root | mysql_native_password |

+-----------+---------+-----------------------+

三、重启mysql服务

service mysql stop
service mysql start

四、在普通用户下用root账号登录成功!