一、问题描述
在用linux的终端连接mysql时,
使用sudo mysql -u root -p 可以正常登录,
但是如果去掉sudo使用mysql -u root -p 登录的话,系统报错如下:
ERROR 1698(28000):Access denied for user ‘root’@‘localhost’ 。
原因是mysql在默认情况下是使用了auth_socket plugin进行认证,
二、解决办法
可以先以管理员身份进入数据库,修改系统自带mysql数据库
中的user表中root用户的plugin字段值为mysql_native_password
修改mysql登陆的验证方式:
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123’
#123的位置写数据库的密码,这行代码可以用来修改数据库的密码#