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

    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

  • 相关阅读:
    iOS 面试题搜集
    iOS 常用第三方类库、完整APP示例
    iOS 键盘遮挡输入 解决办法
    iOS UIColor RGB HEX
    iOS APP性能优化
    iOS Swift 数组 交换元素的两种方法
    iOS CoreData primitive accessor
    iOS Start developing ios apps (OC) pdf
    iOS 传值方式
    iOS IB_DESIGNABLE IBInspectable @IBDesignable @IBInspectable 加速UI开发
  • 原文地址:https://www.cnblogs.com/cuitang/p/15102005.html
Copyright © 2011-2022 走看看