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 -m tcp --dport 3306 -j ACCEPT
完成后執行下面的命令
-
systemctl restart iptables.service #最后重啟防火牆使配置生效
-
systemctl enable iptables.service #設置防火牆開機啟動
然后再看看,mysql是否已經連接,到這里后我已經成功連接