1. 程式人生 > >解決遠端連線mysql出現10038問題心得

解決遠端連線mysql出現10038問題心得

之前在虛擬機器搭建lnmp環境,搭建好之後開發3306埠,進入mysql給root或其他賬號開放遠端許可權,用Navicat就可以連線了。
現在公司就直接一個後端,所有後端工作要自己弄。昨天協助甲方在阿里雲買好了伺服器,之後上去搭建好lnmp環境,按以下步驟操作:
1、開發3306埠:# firewall-cmd --add-port=666/tcp --permanent
重新載入配置:# firewall-cmd --reload
centos7.x 系統防火牆啟動的情況下執行上述兩行命令,如果防火牆沒有開啟,請先開啟systemctl start firewalld(其他Linux系統,安裝對應系統開放埠、開啟防火牆命令來,centos7.x 系統埠操作和防火牆操作

centos 7 埠操作)文章都有詳細命令和說明。
2、給mysql賬號開放遠端許可權:
伺服器本地登入mysql:# mysql -u賬號 -p密碼
方法一:
1)遠端登入不用密碼:# GRANT ALL PRIVILEGES ON *.* TO '賬號'@'%'WITH GRANT OPTION; 不建議
2)遠端登入需密碼:# GRANT ALL PRIVILEGES ON *.* TO '賬號'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
3)限制IP遠端登入:# GRANT ALL PRIVILEGES ON *.* TO '賬號'@'登入ip'IDENTIFIED BY '密碼' WITH GRANT OPTION;

方法二:
選擇mysql資料庫:# use mysql;
修改對應賬號的許可權:# update user set host='%' where user='賬號';(如果現在IP,把%改為對應IP地址)

執行上面的命令後,重新整理MySQL的系統許可權相關表# FLUSH PRIVILEGES;,或者重啟mysql(退出mysql# exit;,執行重啟命令# service mysqld restart

埠已經開放,賬號的遠端登入許可權也開放了,那是不是像在虛擬機器玩一樣就可以用Navicat遠端連線了呢?我認為是可以了的,結果報10038錯誤,於是就開始度娘解決遠端連線mysql錯誤之旅了。網上一大堆解決方法,一看沒啥兩樣就是開放埠、給賬號開放遠端連線許可權,但都做了為啥還不行呢!
要崩潰了,於是去請教了下大牛,剛開始也是叫我走上面的步驟,說明都完成了呀,但就是不行。哎!難道還是無法解決,就在我要絕望的時候,大牛告訴我要在阿里雲安全組新增3306埠規則,天呀還要這樣操作,之前根本不知道這回事。想想應該是阿里雲實例這邊配置問題,就按照大牛說的上去找到安全組,把3306埠新增到入方向規則。等了會,懷著忐忑的心情去試試,哎呀!這的連線成功了,心裡高興呀!
真無語,花了好長時間在網上找,都只是那兩個步驟,完全沒有說例項安全組的問題。哎!自己也是第一次玩阿里雲,好慘呀!記錄下來