Mysql 报错 ERROR 1044 (42000)

Posted by liuxu379 on February 12, 2020

出现这个错误,是因为数据库用户表里存在空用户名的账户(匿名用户),导致 root 用户登录时以匿名用户登录了,所以删掉这个匿名用户就可以啦。

  1. 关闭 Mysql(因为我用的LNMP,所以使用 LNMP 集成的命令进行关闭)
    lnmp mysql stop
    
  2. 屏蔽权限
    mysqld_safe --skip-grant-table
    
  3. 删除匿名账户

    注意这里需要新开一个终端来执行,因为第二步是一个前台进程。

    mysql -u root mysql
    delete from user where USER='';
    flush privileges;
    \q
    

这时匿名用户就已经删除了,可以愉快地登录 root 用户了。