python远程链接Mysql报错pymysql.err.OperationalError的处理

本文介绍使用Python通过pymysql模块连接MySQL数据库时遇到的常见问题及解决方法,包括账号密码验证、主机地址配置、网络连通性检查、防火墙设置及端口开放等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/zhldt2008/article/details/52626892

http://blog.youkuaiyun.com/csdn_lqr/article/details/53885808

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值