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行業都毀在你們這群人手里了。