程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MYSQL ERROR 1045 (28000):Access denied for user (using password:YES)問題的解決

MYSQL ERROR 1045 (28000):Access denied for user (using password:YES)問題的解決

編輯:關於MYSQL數據庫
第一種方法: 推薦
錯誤描述: Mysql中添加用戶之後可能出現登錄時提示ERROR 1045 (28000): Access denied for user的錯誤.

原因分析: 在mysql.user表中可能出現user為空的記錄,如:

mysql> select host,user from user;
+------------------+------+
| host | user |
+------------------+------+
| % | test |
| localhost | |
| localhost | root |
+------------------+------+
3 rows in set (0.00 sec)

解決 辦法: 刪除這些為空的用戶或者更新為其他用戶名

刪除user.user中值為NULL的,或更新NULL為test

1)delete from user where user is NULL
2)update user set user='test' where user is NULL

意外的情況: 如果上述方法沒有效果,依然出現空用戶,則可以利用圖形化用戶client刪除.

第二種方法:linux下
開場白:解決LINUX問題是一種樂趣,當然,能遇到問題就是上天賜的享受幸福的機會。
這次使用的是Mandriva2008spring。
因為要搞一個項目,所以需要安裝MySql,以往安裝MySql都是非常順利的,尤其MySql提供的rmp包,只需雙擊下就可以搞定~但不知道什麼時候,MYSQL ERROR 1045 (28000): Access denied for user (using password: YES),這個拒絕訪問問題變得非常廣泛。
百度了一下,沒有現成的解決方法,唯有找出其問題所在了。
解決問題思路:
第一步,先使用跳過受權表訪問,命令如下:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (當然,在這之前,先停止mysql服務的運行)。
第二步,mysql -uroot mysql 登錄mysql。
第三步,訪問mysql數據庫下的user表。在我的機器上,mysql> select * from user; 得到的,竟然是
Empty set (0.00 sec)。這說明了,我的mysql沒有任何可以訪問的用戶。知道了這問題所在,解決起來就簡單了。
第四步,mysql> INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'username', PASSWORD(‘yourpassword'), 'Y', 'Y','Y');
Query OK, 1 row affected, 3 warnings (0.00 sec)
返回成功,沒問題。嘿嘿~~~就這麼簡單。
第五步,測試,再重啟下mysql服務,正常登錄,成功!!!

提示:mysql系統中的mysql數據庫,存儲的是系統數據,像這裡的user表存儲的是用戶信息及其訪問權限,還有其他,例如你要新建一個數據庫mydb,這數據庫有用戶me管理的話,mysql數據庫裡面的db表就會存儲相關信息。廢話步多說了。

下面是windows 的解決方法:
但如果我們用虛擬主機管理系統開啟的用戶,而且用戶數比較多的時候,好像也不是好辦法。

我使用重新安裝了mysql,然後進入虛擬主機,逐個刪除,重新開數據庫,操作之前一定要備份好原來的data目錄,最後覆蓋下空間數據庫就可以了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved