Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取通信数据包时出错_Python_Mysql - Fatal编程技术网

Python 读取通信数据包时出错

Python 读取通信数据包时出错,python,mysql,Python,Mysql,我正在试图找出为什么从Python访问MySQL时偶尔会出现以下错误: 2018-02-13T10:28:22.4616239Z 137675 [Note] Aborted connection 137675 to db: 'unconnected' user: 'username' host: '132.20.21.10' (Got an error reading communication packets) 可能的原因,根据文件: 客户端程序在退出之前没有调用mysql_clos

我正在试图找出为什么从Python访问MySQL时偶尔会出现以下错误:

 2018-02-13T10:28:22.4616239Z 137675 [Note] Aborted connection 137675 to
 db: 'unconnected' user: 'username' host: '132.20.21.10' (Got an
 error reading communication packets)
可能的原因,根据文件:

  • 客户端程序在退出之前没有调用mysql_close()
不应该是这样,因为我们有一个finally:代码块,它执行close()

  • 客户端在未向服务器发出任何请求的情况下已休眠超过等待超时或交互超时秒。参见第5.1.5节“服务器系统变量”
绝对不是

    客户端程序在数据传输过程中突然终止。
绝对不是

  • max_allowed_数据包变量值太小,或者查询需要的内存比您为mysqld分配的内存多。见第B.5.2.9节“数据包过大”
绝对不是

  • 线程库的一个问题,导致读取时中断
有人在使用python MySQLdb和更具体地说mysqlclient时遇到过任何问题吗

  • TCP/IP配置不正确。故障以太网、集线器、交换机、电缆等。只有更换硬件才能正确诊断此问题。 在Linux上使用以太网协议,包括半双工和全双工
不应该是这样,因为它大部分时间都在工作

如果您有任何想法,我们将不胜感激

****编辑***

最后的代码如下所示:

 def execute(self, query):
    try:
        connection = self.pool.connect()
        cursor = connection.cursor()
        cursor.execute(query)
        data = cursor.fetchall()
        return data
    finally:
        connection.close()
    return data
游泳池的初始设定如下:

import MySQLdb
import sqlalchemy.pool as pool

    def __init__(self, config, logging_name=None):
            def getconn():
                c = MySQLdb.connect(host=config.host, port=int(config.port), user=config.user,password=config.password,charset='UTF8')
                return c  
            self.pool = pool.QueuePool(getconn, logging_name=logging_name)

请发布您的finally:代码块,以便我们查看您的序列。非常感谢@WilsonHauck对您的帮助!该数据库由两个应用程序使用,只有python应用程序导致错误。我将finally代码添加到原始文章中。FETCHALL需要收集多少字节计数?您是否愿意在4月2日第一次请求时提供任何其他信息?而不是问10个问题来获取信息,我们需要考虑可能的原因。这个链接可能有一个线索,在用户评论(接近尾声)。你的connection.close()是否等同于mysql\u close()-因为这个问题只是偶尔出现的,这可能与此无关。谢谢@WilsonHauck,connection\u close()实际上并不等同于mysql\u close()。它使用一个sqlalchemy池——我将检查它在没有它的情况下的行为,并更新这个线程。