環境說明:
遠程雲服務器系統:CentOS7.4
遠程雲服務器數據庫: MySQL 5.7
本機連接遠程數據庫三個問題:
1、網絡是否通暢
2、遠程數據庫是否給本地IP授權或者拒絕遠程用戶登錄
3、遠程服務器是否開放3306端口
4、如果是阿里雲服務器,問題可能原因是未在在阿里雲控制檯配置實例安全組,需自行配置,這裏不作說明。
一般這三個問題解決了,那麼數據庫 的連接應該就沒什麼問題了
1、首先查看網絡是否通暢,本地ubuntu ping 遠程雲服務器,檢查網絡通暢
2、給遠程用戶登錄授權
直接授權(推薦)
從任何主機上使用root用戶,密碼:youpassword(你的root密碼)連接到mysql服務器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%(授權的IP)' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完後切記執行以下命令刷新權限
FLUSH PRIVILEGES
3、 開放3306端口
這裏centos7使用的是firewalld.service 卸載它,安裝iptables.service
3.1、關閉firewall:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
3.2、安裝iptables防火牆
yum -y install iptables-services
3.3、啓動設置防火牆
# systemctl enable iptables
# systemctl start iptables
3.4、查看防火牆狀態
systemctl status iptables
3.5、編輯防火牆,增加端口
vim /etc/sysconfig/iptables
在最後加上一句 如下
-A IN_public_allow -p tcp -m tcp --dport 3306 -m conntrack --ctstate NEW -j ACCEPT
:wq! 保存退出
3.6、重啓防火牆使配置生效
systemctl restart iptables.service #重啓防火牆使配置生效
systemctl enable iptables.service #設置防火牆開機啓動
最後使用本地navicat或者ubuntu下的python項目連接遠程數據庫都正常連接。