【问题标题】:Lost connection to MySQL server at 'reading initial communication packet' when frequent connection频繁连接时“读取初始通信数据包”时与 MySQL 服务器的连接丢失
【发布时间】:2014-11-06 22:58:52
【问题描述】:
# -*- coding: utf-8 -*-
import MySQLdb
import sitedb

for i in range(5):
    print i
    cred = sitedb.loadmysqlcredential()
    db = MySQLdb.connect(host = cred["host"], user = cred["user"], passwd = cred["passwd"], db = "vg_site_db", charset = 'utf8')
    db.close()

我在不同的服务器上有 MySQL:Windows 和 Linux。在 Win 此代码工作正常。在 Linux on 第三次迭代 mysql sad: Lost connection to MySQL server at 'reading initial communication packet', system error: 0.

我必须在 Linux 服务器上进行哪些更改?

UPD:

问题是我有循环(for),当 i = 0 连接发生时,也像 i = 1 和 2,但接下来连接被阻塞

【问题讨论】:

    标签: python mysql


    【解决方案1】:

    以下是我对 linux 数据库使用的连接字符串示例,希望对您有所帮助:

     dbSomeDBConnection = MySQLdb.connect(host="10.100.10.2",
                          user="root",
                          passwd="",
                          db="unitTestDB",
                          charset="utf8"
                          )
    

    UPD:

    我针对我的 linux 设置(带有 MySQL 5.1.73 的 CentOS 6)测试了您的代码,但无法重现您的问题。您可能想尝试像我在下面所做的那样简化您的凭证部分,看看您是否仍然有问题。下面是我用来测试你的东西的,它对我来说很好用:

    # -*- coding: utf-8 -*-
    
    import MySQLdb
    
    for i in range(5):
        print i
        db = MySQLdb.connect(host = "10.100.10.2", user = "root", passwd = "", db = "unitTestDB", charset = "utf8")
        db.close()
    

    【讨论】:

    • 问题是我有循环(for),当 i = 0 连接发生时,也像 i = 1 和 2,但接下来连接被阻塞。
    • @GulaevValentin 我发布了测试代码的更新并且无法复制,尝试进一步简化您的测试,也许它是您服务器上针对并发连接数的配置设置(它应该清理,但谁知道)
    • 没问题,很高兴听到这很简单。
    【解决方案2】:

    谷歌搜索后,我发现有时会发生这种情况,重新启动可以解决问题。我重新启动系统,脚本正常工作。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 2022-01-16
      • 2012-06-25
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 2021-05-07
      • 2011-04-04
      • 1970-01-01
      相关资源
      最近更新 更多