mysql登錄報錯ERROR1045(28000)
1、現象:
[root@localhost ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
2、原因:數據庫中存在空用戶所致
3、解決方案:
1)停用mysql服務:# service mysql stop
2)輸入命令:# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
3)登入數據庫:# mysql -u root mysql
4)mysql> use mysql;
5)mysql> select user,host,password from user; 結果如下:
+------+-----------------------+----------+
| user | host | password |
+------+-----------------------+----------+
| root | % | mima |
| root | localhost.localdomain | mima |
| root | 127.0.0.1 | mima |
| | localhost | |
| | localhost.localdomain | |
+------+-----------------------+----------+
6)將上面查詢出來的空用戶刪除:mysql> delete from user where user='';
7)退出數據庫:mysql> quit
8)啟動mysql服務:# service mysql start
9)重新用命令‘mysql -u root -p’登錄,OK!
或者:
1)找到mysql的配置文件,修改my.cnf,在其中加入skip-grant-tables
2)重啟數據庫service mysql restart
3)免密碼使用root登錄,然後查看user表、刪除空用戶
4)推出數據庫,修改my.cnf,去掉skip-grant-tables
5)重啟數據庫