標籤:
直接用SecureCRT登入到我的linux伺服器,串連mysql後出現以下錯誤
然後我用root使用者登入到mysql查看了我的使用者資訊,如下
出現問題1的原因有很多種,我這裡是因為用錯了yanglibin這個使用者的密碼,用正確的密碼就ok了
更多詳細資料請看 http://blog.csdn.net/lioncode/article/details/7917310(說的很全了)
那篇部落格裡面還提到過一種很常見的問題就是mysql無法遠程登入,
也就是“原因2 : 使用者帳號存在,但未對其所在的用戶端的IP進行遠端存取授權允許”
為了類比這種情況,我建立了一個使用者 testmysql如下
提示錯誤資訊如下
這種情況就如部落格中所說的“原因2”解決方案是給testmysql使用者賦予它所有機器可以登入的許可權
註:用以下方式授權使用者的前提是mysql.user表中沒有其他的testmysql使用者,否則很容易報錯
為了測試方便我另建了一個使用者testmysql1;
最後發現用testmysql1這個使用者還是無法登陸的mysql,從那篇部落格中的以下中找到了一個方法,就是把testmysql1這個使用者的密碼置空
update mysql.user set Password = PASSWORD(‘‘) where User= ‘testmysql1‘;
然後去登陸就可以了,不太清楚這是為什麼,很疑惑
這個時候已經可以通過遠程連結,如用secureCRT用testmysql1使用者去登入mysql,可以行通,但是用這個使用者通過navicat這個軟體去串連mysql會提示如下錯誤
到了這一步碰到這個問題找了很多網上的解決方案,比如
http://kiddwyl.iteye.com/blog/67708
http://zhidao.baidu.com/link?url=0hbT0VywNqcmN1uiONFtca7qPjDcgdAi4zZgt6Yc86A1Tsm97o9UqWC4T0uiziSjuDdsD4aquJjITzERn1Y8la
http://zhidao.baidu.com/link?url=tO_HElduXYDtdRNgib9Ce07WNFVfaYq7mTLiixf8onfSqvHgpWTSxTy9HZ0Mgy__q2hybelglVArvxlFi4c-p_
但是都無法解決我的問題,沒辦法只有繼續找了,無意中看到有可能是因為本地機的3306連接埠被佔用,根據這一提示就試著改了下/etc/my.cnf
如下:
vim /etc/my.cnf
再去用navicat串連mysql就可以了,當然這隻是一個測試案例為了去說明問題,正式情況一般不會去改mysql的連接埠號碼
另外推薦一篇關於mysql使用者權限的文章
http://blog.csdn.net/mchdba/article/details/45934981
遠端連線mysql資料庫碰到的問題及解決方案