首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL错误: 2013,“在‘读取初始通信数据包’时丢失与MySQL服务器的连接,系统错误: 0”

MySQL错误: 2013,“在‘读取初始通信数据包’时丢失与MySQL服务器的连接,系统错误: 0”
EN

Stack Overflow用户
提问于 2010-08-27 02:14:09
回答 9查看 82.5K关注 0票数 20

我在使用Python的MySQLdb库连接到本地MySQL数据库时遇到了问题。这个脚本以前一直运行得很好,但我偶尔会在标题中看到MySQL错误。似乎没有关于何时发生错误的解释,脚本总是使用相同的参数从同一台机器上运行。

MySQL服务器使用端口3306 (本地托管的phpMyAdmin works)在Windows XP SP3上作为服务运行,脚本从Oracle中的Ubuntu10.04客户操作系统运行。

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

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

连接到数据库的代码:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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")
EN

回答 9

Stack Overflow用户

发布于 2011-06-14 08:38:03

代码语言:javascript
复制
sudo vi /etc/mysql/my.cnf

删除

代码语言:javascript
复制
bind-address = 127.0.0.1

然后

代码语言:javascript
复制
sudo reboot now

就这样。请注意,这会降低您的mysql服务器的安全性,因为您正在公开它。

票数 20
EN

Stack Overflow用户

发布于 2010-08-27 02:32:53

我见过当子进程尝试共享相同的mysql连接id (解决方案=为每个子进程创建新连接)时会发生这种情况。我不确定当使用多个线程共享连接对象时,这是否也是可能的。

然而,这只是众多可能原因中的一个。有关故障排除资源的列表,请参阅VVS在MySQL Error 2013中的答案。

票数 4
EN

Stack Overflow用户

发布于 2012-07-14 20:56:07

您的MySQL服务器中是否有一个名为guestos@YOURIPADDRESS的帐户?您必须拥有从YOURIPADDRESS访问您的MySQL服务器的帐户!

例如:您的IP地址是192.168.56.2;如果不存在,则必须创建和帐户才能访问。

代码语言:javascript
复制
mysql> create user guestos@192.168.56.2 identified by 'guestpw';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3578147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档