解决MySQL8.0 root密码为空和 ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘的问题
问题:MySQL8.0安装完成后首次登录root密码为空和用户显示权限错误(如下图),
ubuntu@ubuntu:~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
原因:是因为auth_socket的验证类型引起的。
解决方法:
1、通过sudo进入mysql(Ubuntu默认sudo不需要密码就可以进入)
ubuntu@ubuntu:~$ sudo mysql
2、进入mysql库(如果密码为空不需要1步,直接进入2步)
mysql>use mysql;
3、查找user表(在mysql中输入如下命令【select user, authentication_string,plugin from mysql.user】显示表内容)
4、改密码(新密码暂定'mysql'):
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysql'(此处改为你想要的密码,本例为mysql);
Query OK, 0 rows affected (0.00 sec)
5、再查看user表,已经将密码改成功了!
6、刷新:mysql> flush privileges;7、退出:exit;8、重启mysql:# service mysql restart(操作到此完毕)