mySQLdb - Can't connect

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Hallo, ich benutze das Modul mySQLdb und möchte nun eine Datenbankverbindung aufbauen:

Code: Alles auswählen

MySQLdb.connect(db='idepot', host='localhost', passwd='xxx', user='root')
Dies wird mir nun mit folgendem Fehler quittiert:

Code: Alles auswählen

OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)") 
      args = (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")
Die Verbindungsdaten sind natürlich 100x kontrolliert und der Server läuft auch ganz sicher, da nebenher auf dem Server eine große PHP/mySQL-Anwendung erfolgreich läuft.

Was könnte den Verbindungsfehler verursachen?? Gibt es bei Python/mySQL was besonderes zu beachten?

Danke
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

Guck mal ob /var/lib/mysql/mysql.sock überhaupt existiert. Wenn nicht such die datei mal auf dem System und mach nen symlink darauf.

Gruss
Gast

Das war schon mal eine sehr gute Idee, die Datei lag - wie ichs auch eigentlich kenne *an den Kopf fass* - unter /tmp/mysql.sock :-)
Habe den Link gemacht, nur krieg ich jetzt den Fehler:

Code: Alles auswählen

OperationalError: (1251, 'Client does not support authentication protocol requested by server; consider upgrading MySQL client') 
      args = (1251, 'Client does not support authentication protocol requested by server; consider upgrading MySQL client')
Was bedeutet die Meldung genau? Upgraden muss ich doch nicht, habe 4.1.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Anonymous hat geschrieben:Upgraden muss ich doch nicht, habe 4.1.
MySQLdb ist erst auf Version 1.2.0, wie kannst du da 4.1 haben? In der Fehlermeldung ging es eindeutig um den Client, und vielleicht solltest du tatsächlcih versuchen, MySQLdb zu aktualisieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Ist mir auch grad aufgefallen, dass es um den Client geht und wollte das gerade berichtigen..

Ich habe aber die neueste mySQLdb Version heruntergeladen.

Ich hatte Probleme bei der Installation, ich habe mySQL4.1 manuell installiertund mySQLdb liess sich nur mit den mySQL-devel Packeten installieren, da hab ich dann die mitgelieferten von SuSE (9.2) genommen, die sind so bei 4.0.x gewesen, macht das was?

Wie könnte ich mich auf die Fehlersuche begeben?
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Keine Idee? ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich würde sagen, der Client ist gegen die falschen Devel Libs gelinkt, aber das ist nur eine vermutung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Das denk ich auch und probier es gleich mit einem frischen System und den mitgelieferten mySQL-Paketen aus.

Eich hab ich immer mySQL selbst installiert (weil neuere Version), habe aber dazu nicht die passenden devels gefunden, liegen die auch auf der mysql.com-Seite rum? Hab schon gesucht...

Viele Grüße, und Danke
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bicpi hat geschrieben:Eich hab ich immer mySQL selbst installiert (weil neuere Version), habe aber dazu nicht die passenden devels gefunden, liegen die auch auf der mysql.com-Seite rum? Hab schon gesucht...
Also ich sehs hier. Da sind auch die devel RPMs.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Code: Alles auswählen

MySQL-devel-4.1.12-1.i386.rpm
Danke ! Habs nicht am Titel erkannt :-)
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Jetzt steck ich wieder im Dilemma bei der Installation des mysqldb-Moduls.

Habe die Anleitung befolgt:

Code: Alles auswählen

$ tar xfz MySQL-python-1.1.8.tar.gz
$ cd MySQL-python-1.1.8
$ export mysqlversion="4.0.21"
$ export mysqlclient="mysqlclient_r"
$ export mysqloptlibs="ssl crypto"
Die devel-Packete sind nun korrekt in der Version.
Wenn ich nun

Code: Alles auswählen

python setup.py build
ausführe, kommt folgende Fehlermeldung:

Code: Alles auswählen

running build
running build_py
running build_ext
building '_mysql' extension
gcc -pthread -shared build/temp.linux-i686-2.3/_mysql.o -L/usr/lib/mysql -lmysqlclient_r -lpthread -lz -lcrypt -lnsl -lm -lpthread -lmysqlclient_r -o build/lib.linux-i686-2.3/_mysql.so
/usr/lib/gcc-lib/i586-suse-linux/3.3.4/../../../../i586-suse-linux/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
Mein gcc ist aber korrekt installiert. Was hab ich nun wieder vergessen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

zlib bzw. zlib-devel. Das steht ja schon in der Fahrlermeldung: cannot find -lz, was für libz stehen würde, aber die zlib ist die Ausnahme dieser Regel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Jetzt hats funktioniert, Danke vielmals !!! :-)
Antworten