Ошибка MySQL: 2013, «Потеря соединения с сервером MySQL при« чтении исходного пакета связи », системная ошибка: 0»

У меня проблема с подключением к моей локальной базе данных MySQL с использованием библиотеки Mythondb Python. Сценарий работал хорошо ранее, но я иногда получаю ошибку MySQL в заголовке. Кажется, нет никакого объяснения, когда возникает ошибка, и сценарий всегда запускается с одного компьютера с одинаковыми аргументами.

Сервер MySQL работает как служба в Windows XP SP3 с использованием порта 3306 (работает локально размещенный phpMyAdmin), а сценарий запускается из гостевой операционной системы Ubuntu 10.04 в Oracle VM VirtualBox.

В настоящее время я работаю вокруг эта проблема, открыв командную строку и выполнив «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")
19
задан TM. 27 February 2012 в 23:38
поделиться

2 ответа

Я видел, как это происходило, когда дочерние процессы пытались использовать один и тот же идентификатор соединения mysql (решение = создавать новые соединения для каждого дочернего процесса). Я не уверен, возможно ли это также при совместном использовании объектов соединения с несколькими потоками.

Однако это только одна из многих возможных причин. См. ответ VVS в Ошибка MySQL 2013 для получения списка ресурсов по устранению неполадок.

4
ответ дан 30 November 2019 в 04:29
поделиться

Этот отчет об ошибке может вас заинтересовать. Не знаю, поможет ли это вам, но некоторые смогли решить эту проблему, указав имя сервера, а не ip-адрес в свойствах соединения.

-1
ответ дан 30 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: