navicat premium連線mysql 8.0報錯error 10061和error1130問題
昨天安裝了最新版的mysql navicat premium, 但沒來得及測試使用Navicat連線。
今天上班時,使用Navicat premium連線mysql時,出現報錯ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061).
起初以為是mysql沒有安裝成功,就先去檢測伺服器中是否成功安裝mysql.
使用如下命令:
先進入mysql的安裝目錄
執行mysql -u root -p
輸入登入密碼
執行show databases;(一定要輸入;)
從上面結果得出,mysql已經成功安裝了。
接下來百度了一堆關於ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061)的資料,綜合起來有三種:
1. mysql服務沒有啟動
在服務中可以檢視mysql有沒有啟動。我的mysql已經啟動了,所以排除該原因。
2. 伺服器防火牆遮蔽了3306埠
百度怎麼檢視伺服器防火牆是否遮蔽3306埠,3306埠沒有被遮蔽。
3. my.ini配置檔案中bind-address = 127.0.0.1的問題
我將bind-address = 127.0.0.1修改為bind-address = 0.0.0.0後,發現依舊報10061錯誤。然後我又將bind-address = 0.0.0.0遮蔽掉,還是報10061錯誤。查了一大堆資料,翻來覆去就這三種解決方法,我已經修改了,為什麼不起作用。直到我再次重啟了mysql伺服器,再連線,終於不報10061錯了。oh, my god! 各位兄弟姐妹,修改bind-address後,多寫一句重啟mysql服務,
但是,10061錯誤不出現了,出現了1130錯誤ERROR 1130: Host 'xxx.xxx.xxx.xx' is not allowed to connect to this MySQL server
行吧,誰讓我要用Navicat連線mysql呢,還能咋整,繼續修改唄。
又是百度一堆資料,然後嘗試了一堆解決方法,終於知道了原因:只是本機訪問mysql,其他的任何機器都是無法訪問的。需要設定允許遠端機器訪問。
資料庫伺服器中的mysql資料庫中的user的表中沒有許可權(root也沒有許可權)。
1)先在mysql伺服器上登入root, 然後切換到mysql資料庫
2)執行
update user set host ='%' where user='root';
flush privileges;
3)重啟mysql服務,重啟mysql服務,重啟myssql服務,重要的事,說三遍。
最後使用Navicat連線,顯示連線成功!
終於解決了。。。。。。