python - MySQL 错误 : 2013, "Lost connection to MySQL server at ' 读取初始通信包',系统错误:0"

标签 python mysql

我在使用 Python 的 MySQLdb 库连接到本地 MySQL 数据库时遇到问题。该脚本之前一直运行良好,但我偶尔会在标题中收到 MySQL 错误。似乎没有解释何时发生错误,并且脚本始终从具有相同参数的同一台机器上运行。

MySQL 服务器在 Windows XP SP3 上作为服务运行,使用端口 3306(本地托管的 phpMyAdmin 工作),脚本从 Oracle VM VirtualBox 中的 Ubuntu 10.04 guest 操作系统运行。

我目前正在通过打开命令提示符并执行“net stop MySQL”然后“net start MySQL”来解决此问题。这允许我在导致错误之前再次运行脚本几次,我一直在通过重新启动 MySQL 服务来修复该错误。

由于我仍在对脚本进行更改,有时脚本会引发异常并且不会正常退出,尽管我确实捕获了异常并关闭了光标和连接。

连接数据库的代码:

def __init__(self):
  try:
    print "Connecting to the MySQL database..."
    self.conn = MySQLdb.connect( host = "192.168.56.1",
                                 user = "guestos",
                                 passwd = "guestpw",
                                 db = "testdb")
    self.cursor = self.conn.cursor(MySQLdb.cursors.DictCursor)
    print "MySQL Connection OK"
  except MySQLdb.Error, e:
    print "MySQLdb error %d: %s" % (e.args[0],e.args[1])
    raise

发生这种情况时产生的完整错误如下:

MySQLdb error 2013: Lost connection to MySQL server at 'reading initial communication packet', system error: 0
Traceback (most recent call last):
  File "search.py", line 45, in <module>
    dataHandler = DataHandler()
  File "/home/guestos_user/workspace/Search/src/data_handler.py", line 25, in __init__
    db = "testdb")
  File "/usr/lib/pymodules/python2.6/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 170, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 0")

最佳答案

sudo vi /etc/mysql/my.cnf

删除

bind-address = 127.0.0.1

然后

sudo reboot now

就是这样。请注意,这会使您的 mysql 服务器在暴露时降低安全性。

关于python - MySQL 错误 : 2013, "Lost connection to MySQL server at ' 读取初始通信包',系统错误:0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3578147/

相关文章:

python - Pycrypto - 使用 Crypto.Random 生成 key 和初始化向量

python - 如何将 *.RDS 文件转换为 *.FEATHER 文件?

php - 重用 MySQL 结果

python - 为第一行中的多列插入 0 的逻辑 - Pandas

python - 如何在python中替换一个对象

python - 仅在另一个文件中导入功能

mysql - 一个字段上的 WHERE 子句

mysql - 内部连接与联合所有

php - 新的 html5 canvas 属性与 javascript 交互

php - mySQL 需要一种更有效的方法来检查数据库并向数据库添加值