服務器上的mysql數據庫遠程連接不上問題

前言

今天在給測試服務器安裝完mysql服務器之後,想着使用我本地的navicat連接一下,但是直接報了Host 'xxx' is not allowed to connect to this MySQL server這個錯誤,一開始我以爲是測試服務器防火牆或者是端口沒有對外開放引起的,但是發現測試環境防火牆沒開以及端口也是開放的,後來網上找了一下,原來是mysql服務器沒有開啓遠程訪問權限導致的。

解決方法

登錄到mysql服務器之後,可以使用如下的查詢語句查看是否開啓了遠程訪問權限,查詢結果顯示確實是只能允許本地的root用戶連接。

select host,user,password from user;


可以使用如下語句進行修改所有主機都可以訪問權限

update user set host = '%' where user = 'root';


但是執行完這條語句之後卻發現報錯了,報ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

後來網上找了一下,說是是“唯一索引”引起的!讓我們檢查入的數據是否“重複”,但是這是用戶表呀,我也沒有手動的去插入數據,當然也不能隨意的刪除用戶表的數據吧,所以又找到了另外一個方法,直接無視這個錯誤

直接執行如下命令即可

flush privileges;


執行完之後就可以成功連接!完美

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章