python - 频繁连接时与 MySQL 服务器在 'reading initial communication packet' 处失去连接

标签 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 下,此代码工作正常。在第三次迭代 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/

相关文章:

python - 将 Pandas 数据框转换为元组的元组

mysql - 将 2 个 SQL 表与特定条件进行匹配

使用带有排除的最后一个数字的范围的 Pythonic 方法?

python - npm 使用 2 个版本的 Python

MySQL 查询 : Limit to all rows with value X of first row

MySQL 查询 : Return all rows with a certain value in one column when value in another column matches specific criteria

MYSQL : How can we optimize the select query to fetch more than 1 million data using date range

mysql - 从终端运行数据库中的 sql 文件

python - 使用 BeautifulSoup 从 HTML 表中抓取一列

python - 扩展 pandas 数据框中的行