mysql.connector will nicht...

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Automatisatot
User
Beiträge: 7
Registriert: Dienstag 4. März 2014, 13:48

Hallo allerseits,

also ich weiß echt nicht warum dieser Beispielcode (unter OSX 10.9.2) nicht funktioniert? bzw. was mache ich falsch? :(

in Datenbank "test" existieren drei Tabellen, nun möchte ich diese auflisten:

Code: Alles auswählen

import mysql.connector

def tabellen(cursos):
    cursos.execute('SHOW TABLES')
    for (name) in cursos:
        print(name)

def main():
    verbindung = mysql.connector.connect(host="localhost", user="root", password="", database='test')
    cursos = verbindung.cursor()
    
    tabellen(cursos)
    
    cursos.close()
    verbindung.close()
                
if __name__ == '__main__':
    main()
Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "/Users/xxx/Documents/Eclipse-workspace/mysql/besipiel_mysql.py", line 19, in <module>
    main()
  File "/Users/xxx/Documents/Eclipse-workspace/mysql/besipiel_mysql.py", line 13, in main
    tabellen(cursos)
  File "/Users/xxx/Documents/Eclipse-workspace/mysql/besipiel_mysql.py", line 4, in tabellen
    cursos.execute("SHOW TABLES")
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/cursor.py", line 491, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/connection.py", line 635, in cmd_query
    statement))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/connection.py", line 564, in _handle_result
    eof = self._handle_eof(self._socket.recv())
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/connection.py", line 506, in _handle_eof
    eof = self._protocol.parse_eof(packet)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/protocol.py", line 203, in parse_eof
    raise errors.InterfaceError(err_msg)
mysql.connector.errors.InterfaceError: Failed parsing EOF packet.
muss ich vielleicht noch andere Module neben mysql-connector-python installieren?
Automatisatot
User
Beiträge: 7
Registriert: Dienstag 4. März 2014, 13:48

ich habe es mit MySQLdb unter Windows ausprobiert und da funktionier es...
wagneru
User
Beiträge: 29
Registriert: Freitag 3. Januar 2014, 13:55
Wohnort: Groß-Gerau

Ich würde das Konnektieren der Datenbank in ein try.. except, analog https://dev.mysql.com/doc/connector-pyt ... error.html einschliessen. Dann erhält man aussagefähige Fehlermedungen.
Evtl. mal in den Konnect String ein

Code: Alles auswählen

charset='utf8'
einfügen.
Automatisatot
User
Beiträge: 7
Registriert: Dienstag 4. März 2014, 13:48

danke für Antwort
ich habe mich für MySQLdb entschieden und damit klappt es ohne Probleme...
Antworten