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

Logo

更多推荐