频繁连接时与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。在Windows上,这段代码运行得很好。但在Linux上,当循环到第三次时,MySQL却说:在读取初始通信包时与MySQL服务器失去连接,系统错误:0。
我需要在Linux服务器上做什么更改呢?
更新:
问题是我有一个循环(for),当i等于0时连接正常,i等于1和2时也没问题,但接下来连接就被阻塞了。
2 个回答
0
下面是我在连接一个Linux数据库时使用的连接字符串示例,希望对你有帮助:
dbSomeDBConnection = MySQLdb.connect(host="10.100.10.2",
user="root",
passwd="",
db="unitTestDB",
charset="utf8"
)
更新:
我在我的Linux环境(CentOS 6和MySQL 5.1.73)上测试了你的代码,没能复现你遇到的问题。你可以尝试像我下面那样简化你的凭证部分,看看问题是否依然存在。以下是我用来测试你代码的内容,对我来说运行得很好:
# -*- 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()
0
我在网上查了一下,发现有时候会出现这种情况,重启一下就能解决问题。我重启了我的系统,结果脚本就正常运行了。