0

Um dies vorweg zu nehmen, habe ich diese Frage before gestellt, aber keine Lösung wurde jemals erreicht. In der Hoffnung, dass zwei Jahre das Verständnis des Themas verbessern könnten.MySQL Connector/Python InterfaceError: "Fehler beim Parsing EOF-Paket" nur auf bestimmten Host

Ich versuche, um ein Problem zu beheben, wo ich diesen Fehler sehe ist mysql.connector.errors.InterfaceError: Failed parsing EOF packet.

Hier wird die gesamte Kette:

Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import mysql.connector as connector 
>>> sql = connector.connect(host='remote_host', user='user', password='pw', database='db') 
>>> cursor = sql.cursor() 
>>> sql.is_connected() 
True 
>>> cursor.execute("select * from associations") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 515, in execute 
    self._handle_result(self._connection.cmd_query(stmt)) 
    File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 488, in cmd_query 
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query)) 
    File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 407, in _handle_result 
    eof = self._handle_eof(self._socket.recv()) 
    File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 344, in _handle_eof 
    eof = self._protocol.parse_eof(packet) 
    File "/Library/Python/2.7/site-packages/mysql/connector/protocol.py", line 269, in parse_eof 
    raise errors.InterfaceError(err_msg) 
mysql.connector.errors.InterfaceError: Failed parsing EOF packet. 

Was seltsam ist, ist, dass ich auch eine lokale Datenbank mit aufgebaut haben Die exakt gleiche Struktur mit den gleichen Informationen und das Durchlaufen der gleichen Befehlsfolge funktionieren einwandfrei. Meine lokale Server-Version ist 5.7.12 MySQL Community Server (GPL), während der Remote-Server, mit dem ich mich verbinden möchte, 4.1.22-log ist.

Vom Python/Stecker Handbuch:

Connector/Python does not support the old MySQL Server authentication methods, which means that MySQL versions prior to 4.1 will not work.

Hat "vor" enthalten oder 4.1 aus? Wenn es ausschließt, irgendwelche Ideen, was könnte schief gehen?

Antwort

0

Niemals eine Lösung für mysql.connector gefunden, aber ich fand einen anderen Stecker - PyMySQL, die perfekt funktionierte. Ich musste nicht einmal die Syntax ändern.