频繁连接时,在“读取初始通信包”时与MySQL服务器的连接丢失

时间:2014-09-12 17:34:50

标签: python mysql

# -*- 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上的第三次迭代mysql悲伤:在读取初始通信数据包时丢失了与MySQL服务器的连接,系统错误:0。

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

UPD:

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

2 个答案:

答案 0 :(得分:0)

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

 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()

答案 1 :(得分:0)

谷歌搜索后,我发现它有时会发生,重启可以解决问题。我重启我的系统和脚本工作正确。