MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)問(wèn)題的解決【藍(lán)隊(duì)教程】
第一種方法: 推薦
錯(cuò)誤描述: Mysql中添加用戶之后可能出現(xiàn)登錄時(shí)提示ERROR 1045 (28000): Access denied for user的錯(cuò)誤.
原因分析: 在mysql.user表中可能出現(xiàn)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
意外的情況: 如第一種方法: 推薦
錯(cuò)誤描述: Mysql中添加用戶之后可能出現(xiàn)登錄時(shí)提示ERROR 1045 (28000): Access denied for user的錯(cuò)誤.
原因分析: 在mysql.user表中可能出現(xiàn)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
意外的情況: 如果上述方法沒(méi)有效果,依然出現(xiàn)空用戶,則可以利用圖形化用戶client刪除.
第二種方法:linux下
開(kāi)場(chǎng)白:解決LINUX問(wèn)題是一種樂(lè)趣,當(dāng)然,能遇到問(wèn)題就是上天賜的享受幸福的機(jī)會(huì)。
這次使用的是Mandriva2008spring。
因?yàn)橐阋粋€(gè)項(xiàng)目,所以需要安裝MySql,以往安裝MySql都是非常順利的,尤其MySql提供的rmp包,只需雙擊下就可以搞定~但不知道什么時(shí)候,MYSQL ERROR 1045 (28000): Access denied for user (using password: YES),這個(gè)拒絕訪問(wèn)問(wèn)題變得非常廣泛。
百度了一下,沒(méi)有現(xiàn)成的解決方法,唯有找出其問(wèn)題所在了。
解決問(wèn)題思路:
第一步,?使用跳過(guò)受權(quán)表訪問(wèn),命令如下:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (當(dāng)然,在這之前,先停止mysql服務(wù)的運(yùn)行)。
第二步,mysql -uroot mysql 登錄mysql。
第三步,訪問(wèn)mysql數(shù)據(jù)庫(kù)下的user表。在我的機(jī)器上,mysql> select * from user; 得到的,竟然是
Empty set (0.00 sec)。這說(shuō)明了,我的mysql沒(méi)有任何可以訪問(wèn)的用戶。知道了這問(wèn)題所在,解決起來(lái)就簡(jiǎn)單了。
第四步,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)
返回成功,沒(méi)問(wèn)題。嘿嘿~~~就這么簡(jiǎn)單。
第五步,測(cè)試,再重啟下mysql服務(wù),正常登錄,成功?。。?nbsp;
提示:mysql系統(tǒng)?的mysql數(shù)據(jù)庫(kù),存儲(chǔ)的是系統(tǒng)數(shù)據(jù),像這里的user表存儲(chǔ)的是用戶信息及其訪問(wèn)權(quán)限,還有其他,例如你要新建一個(gè)數(shù)據(jù)庫(kù)mydb,這數(shù)據(jù)庫(kù)有用戶me管理的話,mysql數(shù)據(jù)庫(kù)里面的db表就會(huì)存儲(chǔ)相關(guān)信息。廢話步多說(shuō)了。
下面是windows 的解決方法:
但如果我們用虛擬主機(jī)管理系統(tǒng)開(kāi)啟的用戶,而且用戶數(shù)比較多的時(shí)候,好像也不是好辦法。
我使用重新安裝了mysql,然后進(jìn)入虛擬主機(jī),逐個(gè)刪除,重新開(kāi)數(shù)據(jù)庫(kù),操作之前一定要備份好原來(lái)的data目錄,最后覆蓋下空間數(shù)據(jù)庫(kù)就可以了。 果上述方法沒(méi)有效果,依然出現(xiàn)空用戶,則可以利用圖形化用戶client刪除.
第二種方法:linux下
開(kāi)場(chǎng)白:解決LINUX問(wèn)題是一種樂(lè)趣,當(dāng)然,能遇到問(wèn)題就是上天賜的享受幸福的機(jī)會(huì)。
這次使用的是Mandriva2008spring。
因?yàn)橐阋粋€(gè)項(xiàng)目,所以需要安裝MySql,以往安裝MySql都是非常順利的,尤其MySql提供的rmp包,只需雙擊下就可以搞定~但不知道什么時(shí)候,MYSQL ERROR 1045 (28000): Access denied for user (using password: YES),這個(gè)拒絕訪問(wèn)問(wèn)題變得非常廣泛。
百度了一下,沒(méi)有現(xiàn)成的解決方法,唯有找出其問(wèn)題所在了。
解決問(wèn)題思路:
第一步,先使用跳過(guò)受權(quán)表訪問(wèn),命令如下:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (當(dāng)然,在這之前,先停止mysql服務(wù)的運(yùn)行)。
第二步,mysql -uroot mysql 登錄mysql。
第三步,訪問(wèn)mysql數(shù)據(jù)庫(kù)下的user表。在我的機(jī)器上,mysql> select * from user; 得到的,竟然是
Empty set (0.00 sec)。這說(shuō)明了,我的mysql沒(méi)有任何可以訪問(wèn)的用戶。知道了這問(wèn)題所在,解決起來(lái)就簡(jiǎn)單了。
第四步,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)
返回成功,沒(méi)問(wèn)題。嘿嘿~~~就這么簡(jiǎn)單。
第五步,測(cè)試,再重啟下mysql服務(wù),正常登錄,成功!??!
提示:mysql系統(tǒng)中的mysql數(shù)據(jù)庫(kù),存儲(chǔ)的是系統(tǒng)數(shù)據(jù),像這里的user表存儲(chǔ)的是用戶信息及其訪問(wèn)權(quán)限,還有其他,例如你要新建一個(gè)數(shù)據(jù)庫(kù)mydb,這數(shù)據(jù)庫(kù)有用戶me管理的話,mysql數(shù)據(jù)庫(kù)里面的db表就會(huì)存儲(chǔ)相關(guān)信息。廢話步多說(shuō)了。
下面是windows 的解決方法:
但如果我們用虛擬主機(jī)管理系統(tǒng)開(kāi)啟的用戶,而且用戶數(shù)比較多的時(shí)候,好像也不是好辦法。
我使用重新安裝了mysql,然后進(jìn)入虛擬主機(jī),逐個(gè)刪除,重新開(kāi)數(shù)據(jù)庫(kù),操作之前一定要備份好原來(lái)的data目錄,最后覆蓋下空間數(shù)據(jù)庫(kù)就可以了。
會(huì)員登錄
賬號(hào)登錄還沒(méi)有賬號(hào)?立即注冊(cè)