阿裏雲ECS Linux服務器外網無法連接MySQL解決方法(自己親身遇到的問題是防火墻的問題已經解決)
阿新 • • 發佈:2019-02-14
連接 size tro 防火墻設置 tcp sysconf 們的 can mysql配置文件
我的服務器買的是阿裏雲ECS linux系統。為了更好的操作數據庫,我希望可以用navicat for mysql管理我的數據庫。
當我按照正常的模式去鏈接mysql的時候,
報錯提示:
2003- Can‘t connect MySQL Server on ‘x.x.x.x‘(10038)
於是,通過查找資料,我找到了解決的方法,其實是阿裏雲服務器為了安全默認不允許從外面鏈接Mysql數據庫。
下面是解決整理的三種解決的方法:
第一種、監聽地址配置錯誤解決方法:
檢查mysql服務端口(默認為3306)是否正常監聽在127.0.0.1上,如果監聽在127.0.0.1上那只允許服務器本身訪問的,其他地址是訪問不了的,可以通過下面方法來確定端口監聽以及修改監聽地址;
#netstat -nal |grep 3306 //查看3306端口監聽情況,如果監聽端口在127.0.0.1上,需進行更正。
#find / -name my.cnf //查找MySQL配置文件路徑
#vim /etc/my.cnf //編輯配置文件,將bind-address = 127.0.0.1參數,更改為bind-address = 0.0.0.0 或註釋此行。
重啟mysql服務,問題解決。
第二種、被防火墻阻攔解決方法:
如果排查mysql服務監聽在0.0.0.0地址3306端口上,需檢查防火墻設置。如果是被防火墻攔截,需開放數據庫服務端口。
註意:此處有坑。
第一步:我們可以關閉防火墻,看看外部可不可以鏈接。
service iptables stop
如果是centos7以上用以下命令關閉防火墻
systemctl stop iptables (我遇到問題關閉防火墻就解決了)
第二步:當關閉防火墻可以訪問的時候,問題就出現在我們的端口上。打開端口配置文件,仔細看看是不是3306端口。我就沒看清楚,寫的是3066,整的我把數據庫重新安裝還沒解決問題。
vi /etc/sysconfig/iptables
下面接著來:
iptables -L iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
第三種、USER表配置錯誤解決方法:
監聽地址和防火墻檢查無誤,需進入mysql數據庫內部,檢查USER表是否沒有放開遠程訪問。如果沒有開啟遠程訪問,開啟即可。
mysql> use mysql; //進入到mysql庫中
mysql> update user set host = ‘%‘ where user = ‘root‘; //更改USER這張表中的訪問地址為% mysql> select host, user from user; //查看是否更改成功
配置完成之後記得重啟服務器。
阿裏雲ECS Linux服務器外網無法連接MySQL解決方法(自己親身遇到的問題是防火墻的問題已經解決)