# -*- 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,但接下来连接被阻止
答案 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)
谷歌搜索后,我发现它有时会发生,重启可以解决问题。我重启我的系统和脚本工作正确。