1. 程式人生 > >ERROR 1045 (28000): Access denied for user ‘roort‘

ERROR 1045 (28000): Access denied for user ‘roort‘

ERROR 1045 (28000) ERROR 1044 (42000)

問題現象:

錯誤提示:

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

ERROR 1045 (28000): Access denied for user 'roort'@'localhost' (using password: YES)

故障原因:

mysql數據庫的user表裏面有用戶名為空的賬戶,即匿名用戶。導致登錄的時候雖然用的是root,但實際是匿名登錄的,通過錯誤提示''@'localhost',可以看出來。

解決方法:

1、停止mysqld服務

[root@Paul ~]# service mysqld stop

2、在配置文件/etc/my.cnf添加skip-grant-tables一行,跳過密碼驗證

[root@Paul ~]# vim /etc/my.cnf

[mysqld]

datadir=/data/mysql

user=mysql

log-bin=mysql-bin

basedir=/usr/local/mysql

skip-grant-tables // 添加skip-grant-tables

3、啟動mysqld服務,在新開終端輸入

[root@Paul ~]# mysql

mysql> use mysql;

mysql> select user from user;

+------+

| user |

+------+

| root |

| root |

| root |

| |

| |

| root |

6 rows in set (0.00 sec)

可以看到裏面有2個用戶名為空的匿名賬戶

mysql> delete from user where user='';

Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

4、在配置文件/etc/my.cnf

刪掉skip-grant-tables



ERROR 1045 (28000): Access denied for user ‘roort‘