PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DBI->connect



phatboy
29.01.2003, 13:20
ich hab so das gefühl mein perl ist nicht gescheit configuriert, dass es zur mysql datenbank connecten kann. Ich kann leider kein perl, ich weiss auch gar nich so was für rpms installiert sind (Suse 8.1) und der perl code ist auch nicht von mir, aber fest steht, dass, egal was ich mach, ich immer diese fehler meldung bekomme:


DBI->connect(database=eazydns;host=localhost) failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) at eazydns.kernel.pl line 87

Wenn ich versuche über php mit den gleichen login daten versuche reinzukommen, klappt das wunderbar... aber so wills irgendwie nicht, selbst wenn ich host oder passwort ändere.

Kann mir vielleicht jemand sagen worans normalerweise liegt wenn perl nicht zur db connecten kann?


Edit: ich seh grad da is kein mysql.sock in /tmp/ ...ist das normal? da is aber ein mysql.so...

Doomshammer
29.01.2003, 14:38
Poste mal die Zeile mit dem DBi->Connect aus dem Script (+2 Zeilen davor und 2 danach)

Die Zeile koennte in etwa so aussehen:

$dbh = DBI->connect($dbs, $user, $pass) or die "Es ist ein Fehler aufgetreten!";

phatboy
29.01.2003, 14:45
ja, das ist leider unmöglich, da die file offenbar vom programm erstellt wird, es gibt zwar ne ca. 1mb grosse eazydns.kernel aber keine eazydns.kernel.pl datei. Ich bezweifele aber, dass es ein Fehler im Script ist, sofern dass deine Vermutung ist, da der Script weitverbreitet ist.

Ebenfalls hat sich das programm in /root/ installiert, welches es auch laut hersteller tun sollte... kann es sein, dass dadurch irgendwelche fehler auftreten?

Doomshammer
29.01.2003, 15:01
Ich vermute das der Connect fehlschlaegt, weil Benutzer oder Passwort falsch sind.

phatboy
29.01.2003, 15:43
dass Benutzer und Passwort falsch sind ist unwahrscheinlich, da ich diese regelmässig benutze um mich mit php in mysql einzuloggen. Also die Daten stimmen 100%

Aber ich hab trotzdem mit dem benutzerdaten herumgespielt und schliesslich hats geklappt indem ich als host eine domain von mir genommen hab (weder IP noch localhost hat geklappt) und dann gings auch nur mit dem root user, aber nicht wenn root user ein passwort angibt, was eigendlich auch komisch ist, da ich für root ein passwort definiert habe und sonst nirgends ohne passwort mit root mich ins mysql einloggen kann.

Also ich blick da nicht durch und habe keine ahnung warums jetzt funzt, aber gut find ichs trotzdem auch wenns jetzt sehr unsicher ist.

phatboy
30.01.2003, 17:03
jo, also auf einmal funzt des crone tab nimmer und ich bekomm folgendes:


DBI object version 1.30 does not match $DBI::VERSION 1.20 at PERL2EXE_STORAGE/DynaLoader.pm line 225.
BEGIN failed--compilation aborted at PERL2EXE_STORAGE/DBI.pm line 189.
Compilation failed in require at eazydns.kernel.pl line 11.
BEGIN failed--compilation aborted at eazydns.kernel.pl line 11.

Auch andere progs haben das problem:


Can't load '/tmp/mysql.so' for module DBD::mysql: libmysqlclient.so.6: cannot open shared object file: No such file or directory at PERL2EXE_STORAGE/DynaLoader.pm line 88. at /home/pdadmin/web/admin/admin.pl line 8 BEGIN failed--compilation aborted at /home/pdadmin/web/admin/admin.pl line 8.

Ein admin.pl gibt es in diesem fall nicht wirklich, offensichtlich wird dies ebenfalls erstellt. Es gibt jedoch ein admin.cgi aber es ist 10mb gross und unleserlich.

Doomshammer
30.01.2003, 18:37
Installier mal das Modul DBD::Mysql


perl -MCPAN -eshell
cpan> install DBD::Mysql

phatboy
30.01.2003, 20:51
wow, das war aufregend... zuerst sagts mir meine version is outdated... also hohl ich das neue bundle... dann sagts mir es kann kein DBD::Mysql installieren, weil es nicht weiss was es ist... dann hab ich diese such funktion und es fand DBD::mysql und 5 andere, also hab ich das installiert, obwohl ich das schon von den rpms kenne... also hab ich DBD::mysql installiert, obwohl das offensichtlich nich so ganz geklappt hat, da erstens ich immer noch die gleichen fehler bekomme und ich folgendes am ende der installation bekam:


make: *** [blib/arch/auto/DBD/mysql/mysql.so] Error 1
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible

PS: vertrauenswürdigen menschen gebe ich n shell account um mir zu helfen :D

Doomshammer
30.01.2003, 21:35
Die Fehlermeldung sagt leider nichts aus.. ein paar mehr Zeilen davor koennten mehr aussagen.

Shell ist ok... aber nicht mehr heute Abend ;)