Seite 1 von 1

mySQLdb - Can't connect

Verfasst: Freitag 3. Juni 2005, 16:56
von bicpi
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

Verfasst: Freitag 3. Juni 2005, 18:15
von rayo
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

Verfasst: Freitag 3. Juni 2005, 19:24
von 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.

Verfasst: Freitag 3. Juni 2005, 19:31
von Leonidas
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.

Verfasst: Freitag 3. Juni 2005, 19:56
von 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?

Verfasst: Samstag 4. Juni 2005, 15:16
von bicpi
Keine Idee? ;-)

Verfasst: Samstag 4. Juni 2005, 17:38
von Leonidas
Ich würde sagen, der Client ist gegen die falschen Devel Libs gelinkt, aber das ist nur eine vermutung.

Verfasst: Sonntag 5. Juni 2005, 15:07
von bicpi
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

Verfasst: Sonntag 5. Juni 2005, 15:15
von Leonidas
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.

Verfasst: Sonntag 5. Juni 2005, 15:21
von Gast

Code: Alles auswählen

MySQL-devel-4.1.12-1.i386.rpm
Danke ! Habs nicht am Titel erkannt :-)

Verfasst: Sonntag 5. Juni 2005, 16:10
von bicpi
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?

Verfasst: Sonntag 5. Juni 2005, 18:27
von Leonidas
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.

Verfasst: Sonntag 5. Juni 2005, 18:36
von bicpi
Jetzt hats funktioniert, Danke vielmals !!! :-)