1.这可能是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的

2.解决方案

2.1.关闭mysql
service mysqld stop

2.2.屏蔽权限
mysqld_safe --skip-grant-table

or
/usr/bin/mysqld_safe --skip-grant-tabl

Starting demo from ..... 
2.3.新开起一个终端输入
mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';//重置root密码

mysql> delete from user where USER='';//删除空用户

mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误 mysql> exit

2.4.重启mysql
service mysqld restart

2.5.登陆mysql
mysql -uroot -p //输入密码,成功登陆

更多推荐

centos下mysql 看不到mysql数据库(密码无法更改)