1. 程式人生 > >阿裏雲ECS Linux服務器外網無法連接MySQL解決方法(自己親身遇到的問題是防火墻的問題已經解決)

阿裏雲ECS Linux服務器外網無法連接MySQL解決方法(自己親身遇到的問題是防火墻的問題已經解決)

連接 size tro 防火墻設置 tcp sysconf 們的 can mysql配置文件

我的服務器買的是阿裏雲ECS linux系統。為了更好的操作數據庫,我希望可以用navicat for mysql管理我的數據庫。

當我按照正常的模式去鏈接mysql的時候,

報錯提示:

2003- Cant 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解決方法(自己親身遇到的問題是防火墻的問題已經解決)