python遠端連結Mysql報錯pymysql.err.OperationalError的處理
import pymysql
conn = pymysql.Connect(host='192.168.255.255',user='laicheng',passwd='135246',db='test_sql')
cur = conn.cursor()
cur.execute("select version()")
for i in cur:
print(i)
cur.close()
conn.close()
上面一段為python連結資料庫test_sql的一段測試程式碼。這裡的
報錯pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on,,
經過多處資料查詢找到原因如下:
1.首先確定輸入的賬戶和密碼是正確的,在MySQL建立賬戶密碼命令如下:
GRANT USAGE ON*.*TO'laicheng'@'%'IDENTIFIED BY '135246'WITH GRANT OPTION;
新增user=laicheng,passwd=135246的使用者
2.確定輸入的host是否正確,檢視伺服器host命令:ifconfig
這裡黑色塗抹處為ip地址也就是host要填入的資料,我這裡假設為192.168.255.255.
3.確認網路是否是通的:ping www.baidu.com如果返回資料沒問題那就是通的。
4.防火牆埠3306開啟(這是MySQL的埠),開啟MySQL的3306埠:
4.1、關閉firewall:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
4.2、安裝iptables防火牆
yum install iptables-services -y
安裝時我的Centos7又報錯,處理辦法如下:
錯誤為:沒有可用軟體包 iptables-services-y。
解決辦法:
安裝iptables-services軟體包:yum install iptables-services
在引導時啟用iptables服務:systemctl enable iptables
啟動iptables服務:systemctl start iptables
儲存防火牆規則:service iptables save
4.3啟動設定防火牆
systemctl enable iptables
systemctl start iptables
4.4檢視防火牆狀態
systemctl status iptables
4.5編輯防火牆,增加埠
vi /etc/sysconfig/iptables #編輯防火牆配置檔案
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
進去按i編輯文字編輯好後:wq儲存退出。
4.6.重啟配置,重啟系統
systemctl restart iptables.service #重啟防火牆使配置生效
systemctl enable iptables.service #設定防火牆開機啟動
http://blog.csdn.net/zhldt2008/article/details/52626892
http://blog.csdn.net/csdn_lqr/article/details/53885808