# -*- 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 下,此代码工作正常。在第三次迭代 mysql 的 Linux 上,悲伤:在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:0。
我必须在 Linux 服务器上更改什么?
更新:
问题是我有循环(for),当 i = 0 连接发生时,也像 i = 1 和 2 一样,但接下来连接被阻止
最佳答案
以下是我针对 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()
关于python - 频繁连接时与 MySQL 服务器在 'reading initial communication packet' 处失去连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25813789/