標籤:
http://361324767.blog.163.com/blog/static/11490252520124454042468/
首先我想說一句話:
我極度鄙視國內搞IT的人,簡直無語,同樣是解決這個問題,幾乎一模一樣,都是抄來的。更有甚者,拋出的錯誤是:Access denied for user‘root‘@‘localhost‘ to database ‘mysql‘,竟然也把別人的解決方案照搬過來,還恬不知恥的說:問題解決了,我估計都沒有真正去操作過。
下面是本人在參考別人的基礎之上得到的解決方案:
問題的引出:
我在CentOS上裝完mysql後,用navicat連結的時候,拋出MySql - SQL Error (1130): Host IP is not allowed to connect to this MySQL server 錯誤,具體解決方案請參考本人日誌http://361324767.blog.163.com/blog/static/114902525201232832621498/。
該問題解決後,本人登入mysql ,輸mysql -u root時無錯,但是執行如下語句時:
mysql> use mysql
拋出該錯誤,參考網上各位大抄的大作如下:
----------------------------------------------------------------------------------------------------------------------------------------------
如先輸入mysql,成功啟動後輸入use mysql,出現如下錯誤:Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘
還有,輸mysql可以,輸mysql -u root就出錯了:
Access denied for user ‘root‘@‘localhost‘ (using password: NO).
The reason is:
是昨日更新ROOT密碼時出錯
update user set password = ‘123456‘ where user ="root" //這樣寫是錯的,密碼其實不是123456
應該為update user set password = password (‘123456‘) where user = "root"
具體操作步驟:
關閉mysql:
# service mysqld stop
然後:
# mysqld_safe --skip-grant-tables
啟動mysql:
# service mysqld start
mysql -u root
mysql> use mysql
mysql> UPDATE user SET Password=PASSWORD(‘xxx‘) WHERE user=‘root‘;
mysql> flush privileges;
mysql>\q |
---------------------------------------------------------------------------------------------------------------------------------------------------------
按照各位大抄的步驟一步一步做,沒有任何效果,仔細研究錯誤資訊中的 user ‘‘@‘localhost‘ ,說明user表中的user=‘’的資訊有誤,然後執行UPDATE user SET Password=PASSWORD(‘‘) WHERE user=‘‘;
果斷沒有作用。
最後不允許匿名登入,執行以下語句
mysql> delete from user where user=‘‘;
mysql > flush privileges;
mysql> \q
# service mysqld restart
問題解決。
------------------------------
在此忠告各位搞IT的同仁,你們有點專業精神好不?每個問題都搞清楚什麼意思好不?別抄來抄去有意思嗎?都中國IT人的臉,中國的IT行業都毀在你們這群人手裡了。
Mysql - 解決Access denied for user ''@'localhost' to database 'mysql'問題