1. 程式人生 > >centos 7 下安裝mysql 遠端連接出現10038錯誤如何解決

centos 7 下安裝mysql 遠端連接出現10038錯誤如何解決

轉載:http://www.codegong.com/document/19   非常感謝

centos7 安裝完mysql後想使用遠端連線mysql進行管理,但是並沒有那麼簡單 cant connect to mysql server on 10038


對沒錯,肯定會出現這樣那樣的問題,解決方案

首先 設定遠端訪問許可權 在mysql中執行語句

grant all privileges on *.*  to  'root'@'%'  identified by 'youpassword'  with grant option;

*.* 允許遠端訪問的IP地址 .表示所有IP都可以根據root使用者進行訪問

youpassword就是mysql資料庫密碼

flush privileges;   //重新整理MySQL的系統許可權相關表­
quit; // 退出mysql

記得重啟mysql centos7下如何重啟?

service mysql restart #重啟mysql命令

好了,試試可以連線成功嗎?結果是否定的,還是不行,怎麼辦?防火牆,對

但是centos7的防火牆預設使用的是firewall作為防火牆,這裡改為iptables防火牆步驟。

1、關閉firewall:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #檢視預設防火牆狀態(關閉後顯示notrunning,開啟後顯示running)

2、iptables防火牆(這裡iptables已經安裝,下面進行配置,如果沒有安裝可先安裝防火牆)

#先檢查是否安裝了iptables
service iptables status
#安裝iptables
yum install -y iptables
#升級iptables(安裝的最新版本則不需要)
yum update iptables 
#安裝iptables-services
yum install iptables-services

iptables沒有問題後執行下面的命令

vi /etc/sysconfig/iptables #編輯防火牆配置檔案
這時候會進入vi編輯,你會看到裡面的配置資訊

# sampleconfiguration for iptables service
# you can edit thismanually or use system-config-firewall
# please do not askus to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[0:0]
-A INPUT -m state--state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -jACCEPT
-A INPUT -i lo -jACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -jACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080-j ACCEPT
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -jREJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #儲存退出

當然,裡面的這三行是沒有的,把下面的三行配置新增到裡面,如果編輯vi不會可以百度,實際上按i就進入編輯模式了,具體操作可以百度

-A INPUT -p tcp -mstate --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -jACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080-j ACCEPT

完成後執行下面的命令

systemctl restart iptables.service #最後重啟防火牆使配置生效
systemctl enable iptables.service #設定防火牆開機啟動
然後再看看,mysql是否已經連線,到這裡後我已經成功連線