解决 CentOS下mysql数据库:ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘mysql’

CentOS把mysql数据库安装好,在使用use mysql;添加用户的时出现ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'错误

网上查了下:ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘mysql’报错是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,实际上是匿名登录的,通过错误提示里的”@’localhost’可以看到。mysql虽然拥有了账号和对应的密码。但是,由于存在空密码的情况,会默认登录到空密码中,解决方法是需要把空密码的账号删除,可以通过如下命令查看所有账户:
select host,user,password from user;
删除空密码的账户的方法如下:

1、关闭数据库:
service mysqld stop

2、屏蔽权限:
mysqld_safe --skip-grant-table
[root@root ~]# mysqld_safe --skip-grant-table
Warning: World-writable config file '/etc/my.cnf' is ignored
Warning: World-writable config file '/etc/my.cnf' is ignored
200229 08:20:30 mysqld_safe Logging to '/var/lib/mysql/root.err'.
200229 08:20:30 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

3、新开一个终端依次输入:
   # mysql -u root mysql
   mysql> delete from user where USER='';  //删除空密码
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> \q