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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值