python + pymysql连接数据库报“(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)")”

前言:

由于项目最近更换了数据库,导致执行python代码连接数据库的时候,出现“超时”或“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”,代码执行失败了。目前使用的是polardb数据库(类似mysql)

错误信息如下:

1、 数据库连接失败:(2003, "Can't connect to MySQL server on 'XXX数据库的地址' (timed out)")
2、 (2003, "Can't connect to MySQL server on 'XXX数据库的地址' ([WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)")

解决方案:

1、排查了本地端口冲突的问题,连接的远程的服务器

2、和对应的服务器端工作人员排查,机器网络正常(可能网络时好时坏)

3、最后通过加上数据库重连的机制解决

由于是首次遇到这种连接数据库超时的问题,以前连接数据库很少会有这种情况,所以原始代码是不需要重连的,98%概率是成功连接上的

    def connect_dbserver(self):
"""
连接数据库
"""
try:
self.db = pymysql.connect(**self.sql_config)
self.cursor = self.db.cursor()
except pymysql.Error as e:
mylog.error("数据库连接失败:{0}".format(e))

加上重连机制的代码,失败了继续重试,一般都可以连接上数据库了

    def connect_dbserver(self):
"""
连接数据库
"""
retry_count = 10
init_connect_count = 0
connect_res = True
while connect_res and init_connect_count < retry_count:
try:
self.db = pymysql.connect(**self.sql_config)
self.cursor = self.db.cursor()
# 连接上退出循环,连接不上继续重连
connect_res = False
except pymysql.Error as e:
mylog.info("数据库连接失败,尝试重连...,错误信息:{0}".format(e))
init_connect_count += 1

  

参考:https://www.cnblogs.com/fanjp666888/p/8608406.html

python + pymysql连接数据库报“(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)")”的更多相关文章

  1. 解决 pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 61] Conne

    pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 61] ...

  2. 连接远程数据库时出现 SSH: expected key exchange group packet from server / 2003 - Can't connect to MySQL server on 'XXX' (10038) / 1130 - Host 'XXX' is not allowed to connect to this MySQL server

    昨天在自己的远程服务器上玩,把系统重装了.新装了MySQL,在本地用navicat连接的时候出了几个小问题. 问题一:SSH: expected key exchange group packet f ...

  3. SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XXX' (13)

    SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XXX' (13) 我可以真见识了 SELinux 的利害了, 这个问题让我找了好长时 ...

  4. 连接mysql报错-Can't connect to MySQL server on

    1.问题: 在Windows 上远程连接数据库报错-Can't connect to MySQL server on... 但是重启系统后就可以连接: 2.这种原因大致是因为系统缓冲区空间不足或列队已 ...

  5. 在centos中php 在连接mysql的时候,出现Can't connect to MySQL server on 'XXX' (13)

    原文连接:http://hi.baidu.com/zwfec/item/64ef5ed9bf1cb3feca0c397c 红色的是命令 SQLSTATE[HY000] [2003] Can't con ...

  6. Navicat 连接远程数据库报错:2003 - Can‘’t connect to MySQL server on 'XX.XX.XX.XX' (10061)

    Navicat 连接远程数据库报错:2003 - Can‘’t connect to MySQL server on '172.22.69.190'  (10061) 一.原因 远程数据库使用了默认设 ...

  7. bugfree,CDbConnection 无法开启数据库连线: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '192.168.0.99' (4)

    安装bugfree后,访问报错:CDbConnection 无法开启数据库连线: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '19 ...

  8. perationalError: (2003, "Can't connect to MySQL server on u'192.168.1.6' (timed out)")

    在Ubuntu(192.168.1.20)中部署项目后,mysql还在另外一台windows(192.168.1.6)机子上,ping windows时可以ping通,但是访问项目提示: perati ...

  9. 关于mysql连接时候出现"error 2003: can't connect to mysql server on 'localhost'(10061)问题的解决

    天,在使用navicat Premium 连接数据库时,出现了一个弹出窗口显示: "error 2003: can't connect to mysql server on 'localho ...

随机推荐

  1. 【Python】【Module】os

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...

  2. 【C/C++】例题3-5 生成元/算法竞赛入门经典/数组与字符串

    [题目] x+x的各位数之和为y,x为y的生成元. 求10万以内的n的最小生成元,无解输出0. [解答] 这是我根据自己的想法最初写的代码: #include<cstdio> #inclu ...

  3. JAVA日志发展史

    JAVA日志发展史 第一阶段 2001年以前,Java是没有日志库的,打印日志全凭System.out和System.err 缺点: 产生大量的IO操作同时在生产环境中无法合理的控制是否需要输出 输出 ...

  4. 使用 scipy.fft 进行Fourier Transform:Python 信号处理

    摘要:Fourier transform 是一个强大的概念,用于各种领域,从纯数学到音频工程甚至金融. 本文分享自华为云社区<使用 scipy.fft 进行Fourier Transform:P ...

  5. 密码学之Hash散列

    一.简介 hash(散列.杂凑)函数,是将任意长度的数据映射到有限长度的域上. 直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹).也就是说,无论数据块m有 ...

  6. 开发中Design Review和Code Review

    一.Design Review 详解 翻译为设计评审,也就是对需求设计进行审核,防止出现异常问题,例如下面的这些 可用性 外部依赖有哪些?如果这些外部依赖崩溃了我们有什么处理措施? 我们SLA是什么? ...

  7. TSN 时间敏感网络:缘起 (TSN历史与现状)

    前言 随着工业物联网(IIoT)的兴起和工业4.0的提出,越来越多的设计师.工程师和最终用户关注时间敏感网络(Time-Sensitive Networking,下简称为TSN).TSN为以太网提供确 ...

  8. IDT系统中断描述表以及绕过Xurtr检测的HOOK姿势

    什么是中断?  指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程.即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个 ...

  9. CF31A Worms Evolution 题解

    Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\),试找出一个三元组 \((i,j,k)\),使得 \(a_i=a_j+a_k\). 数据范围:\(3\l ...

  10. java 数据类型:<泛型>在方法中和在构造器中的应用

    背景: Java不允许我们把对象放在一个未知的集合中. import java.util.ArrayList; import java.util.List; /** * @ClassName Meth ...