PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mysql Server , connect nur als root?



michael.sprick
06.06.02, 23:49
Hi,

ich habe mich endlich dazu durchgerungen, SQL zu lernen.
Als Root (am System angemeldet) habe ich keinerlei Probleme die Datenbanken zu bedienen....
sobald ich mich jedoch als 'normaler' User anmelde oder via Perl/CGI (also als apache) auf den mysql server zugreifen will, krieg ich den Fehler, dass ich die Verbindung via
/var/lib/mysql/mysql.sock
nicht möglich.
wie gesagt, es sind nicht die SQL User , die Probleme machen, sondern scheinbar irgendwelche Dateirechte - aber welche`????

weiss jemand Rat?

redhat 7.0, mySQL version 3.23.22-beta-log

vielen Dank, B :)

next
06.06.02, 23:56
hi,
installier dir mal phpMyAdmin!
dann kannst du deine user anlegen!

cu next

michael.sprick
07.06.02, 00:01
hi,

hmmm...nee, das ist eigenltich nicht das Problem - also glaub ich zumindest.

Die SQL User, die brauche hab ich angelegt. In einem Perlscript werden verschiedene Subroutinen ausgeführt, die alle unterschiedliche User haben um sich zu Datenbank zu verbinden. ...das ganze ist nur zum testen.
Das Script läuft perfekt. Alle Inserts und Selects werden ausgeführt.
ABER! Nur dann, wenn ich das Script als root starte (der SYSTEM Benutzer Root)

starte ich das Script vie webserver oder als bilbo , bekomme ich eben die o.g. Fehlermeldung.

ich schätze der Server braucht irgendwelche Optionen oder die rechte auf irgendwelche Dateien müssen geändert werden....

*grübel*

Sfeni
07.06.02, 08:23
Als welcher System-User läuft denn der mySQL Server???

stefaan
07.06.02, 09:13
Servus!

Poste bitte einmal die genaue Fehlermeldung!
Ist der Server überhaupt gestartet? (Das wäre nämlich die typische Fehlermeldung dazu!)

Kannst du dich auf dier Konsole mit
# mysql -u root -p password
# mysql -u anderer_user -p dessen_pw
anmelden?
Hast du nach der Installation überhaupt ein Root-PW gesetzt?

Wenn du auf der Konsole nicht reinkommst, geht mit PHP/Perl auch nix :D

Grüße, Stefan

michael.sprick
07.06.02, 09:57
Hi, danke für die Antworten

hier die Details:

Der Mysql Server ist gestartet und läuft unter dem Unix Benutzer 'mysql'.

Die Fehlermeldung ist diese:
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)


Das Szenario:
Die Unixuser mit denen ich mein Script ausprobiere, sind einmal "ROOT" und einmal "bilbo".
"Root" - ihr wisst schon - das, was wir alle sind ;)
"Bilbo" ist ganz normaler Systembenutzer.
Mein Apache läuft als "apache".

Melde ich mich jetzt als Root an, und führe an der Konsole dieses PerlScript aus:

.............................................schni pp
use DBI;
$dbh=DBI->connect("DBI:mysql:datenbank","msprick","msprick");
die "Fehler $DBI::errstr\n" unless $dbh;
$sql="select \* from users where username=\"michael\"";
@retval=$dbh->selectrow_array($sql);
print @retval;
$dbh->disconnect();
die "Fehler $DBI::errstr\n" unless $dbh;
...............................................sch napp

...so lunktioniert alles prima. der user msprick existiert in SQL und der Select läuft sauber.
Das Script hat die Recht 0777, darf also von jedermann ausgeführt werden.

melde ich mich nun mit 'su bilbo' als Bilbo am System an, und führe dann das Script aus, bekomme ich den o.g. Fehler.
Wenn ich das Script als CGI umstricke, und via apache ausführen lasse, krieg ich auch den Fehler. Warum???? ich versteh das nicht.

vielleicht weiss ja nochjemand was.
In einer Mailingliste stand mal, man müsste /var/lib/mysql/mysql.sock nach /tmp/ linken.... aber wenn dem so wäre, dann müssten doch alle Redhat benutzer das Problem haben....naja, abgesehn davon hab ich´s probiert und es half garnix.

:confused:
viele Grüße, B.

michael.sprick
07.06.02, 10:01
achso...

beide varianten

# mysql -u root -p password
# mysql -u anderer_user -p dessen_pw

funktionieren. und ein PAsswort für Root hab ich natürlich in Mysql auch gesetzt ;)