Mam problem z nawiązaniem połączenia z moim lokalnej bazy danych MySQL przy użyciu MySQLdb biblioteki Pythona. Skrypt działał dobrze wcześniej, ale od czasu do czasu otrzymam błąd MySQL w tytule. Wydaje się, że nie ma żadnego wyjaśnienia, kiedy wystąpi błąd, a skrypt jest zawsze uruchamiany z tego samego komputera z tymi samymi argumentami.Błąd MySQL: 2013, „Utracono połączenie z serwerem MySQL na«odczyt początkowej komunikacji pakietu», błąd systemu: 0”
Serwer MySQL działa jako usługa w systemie Windows XP SP3 przy użyciu portu 3306 (lokalnie obsługiwane roboty phpMyAdmin), a skrypt jest uruchamiany z systemu operacyjnego gościa Ubuntu 10.04 w Oracle VirtualBox Oracle.
Obecnie pracuję obejść ten problem, otwierając wiersz polecenia i wykonujące „Stop MySQL netto”, a następnie „start MySQL netto”. To pozwala mi uruchomić skrypt kilka razy, zanim spowoduje błąd, który naprawiam, restartując usługę MySQL.
Ponieważ wciąż wprowadzam zmiany w skrypcie, zdarzają się sytuacje, gdy skrypt podnosi wyjątek i nie wychodzi z wdziękiem, chociaż przechwyciłem wyjątek i zamknąłem kursor i połączenie.
kod, aby połączyć się z bazą danych:
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
Pełne błąd generowany, kiedy to nastąpi to w następujący sposób:
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")
Udało ci się to naprawić? Dostaję to również: \ mój host 127.0.0.1 łączy się z puttem na podłączonym do mojego serwera – CodeGuru
Naprawiłem go w tym momencie, aktualizując MySQL. Podejrzewam, że prawdopodobnie używasz najnowszej wersji, ale na wszelki wypadek sprawdź dokładnie.Jeśli używasz najnowszego, to niestety nie wiem jak to naprawić. –
To zadziałało dla mnie http://stackoverflow.com/questions/32399831/error-during-django-running-migrations-django-db-utils-operationalerror-201 – sinaza