出现这个错误,是因为数据库用户表里存在空用户名的账户(匿名用户),导致 root 用户登录时以匿名用户登录了,所以删掉这个匿名用户就可以啦。
- 关闭 Mysql(因为我用的LNMP,所以使用 LNMP 集成的命令进行关闭)
lnmp mysql stop
- 屏蔽权限
mysqld_safe --skip-grant-table
- 删除匿名账户
注意这里需要新开一个终端来执行,因为第二步是一个前台进程。
mysql -u root mysql delete from user where USER=''; flush privileges; \q
这时匿名用户就已经删除了,可以愉快地登录 root 用户了。