之前MySQL服务端本机上使用密码登陆root账号是没有问题的,但是今天不知道是因为动了哪里,登陆失败并有这个错误代码:
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
解决步骤:
在登录命令前加上sudo
,这样在输入密码时可以直接回车进去,不需要密码
sudo mysql -u root -p
查看一下user表,错误的起因就是在这里, root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password。
pdate mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1 mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
重启服务,问题就解决了
sudo service mysql stop
sudo service mysql start
正常登录即可