Am Mittwoch, 31. März 2004 12:55 schrieb Andreas Härtel:
Dennis Leist wrote:
Andreas Härtel schrieb:
Also: ich habe es soweit hinbekommen, dass das Script funktioniert, aber immer failed ausgibt. Dies liegt wohl an einem falschen/nicht gesetzten Passwort: #################################################### andreas-lab:/var/lib/mysql # rcmysql start Starting service MySQL /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user: 'mysql@localhost' (Using password: YES)'
failed andreas-lab:/var/lib/mysql # /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user: 'mysql@localhost' (Using password: YES)' rcmysql status Checking for service MySQL: running andreas-lab:/var/lib/mysql # ####################################################
Sieht so aus, als sei dem MySQL-User mysql der Zugang bei _Verwendung_ eines Passworts verwehrt. Mal mal folgendes: #> mysql --user=root --password=<MySQL-Paasword-Fuer-Root> mysql
Dann kommst Du in die mysql-Shell, wenn nicht - versuche die Option password wegzulassen.
mysql> select User,Host,Password from user;
Du erhälst etwa dies:
+----------------+-----------+------------------+
| User | Host | Password |
+----------------+-----------+------------------+
| thor | localhost | 623aaf9c0d4f649b | | thor | % | 623aaf9c0d4f649b |
+----------------+-----------+------------------+ 2 rows in set (0.00 sec)
Vielleicht auch mehr User, wenn Du welche angelegt hast. Die Host-Spalte ist wichtig. Solltest Du also einen User namens mysql dort haben, muss auch in der Spalte Host entweder % oder localhost stehen. Es geht, wie Du siehst auch beides. Abhängig von welchem Rechner man sich einloggt, kann man verschiedene Passworte setzen.
Ich habe festgestellt, dass root auch kein Password gesetzt hatte und das nachgeholt. Dann habe ich - da kein solcher User existierte - einen User "mysql" angelegt, mit einem Password, welches ich weiss.
Nun bleibt aber das Problem, dass bei dem Befehl "rcmysql start" der Server zwar startet, aber mit failed quittiert.
Dabei habe ich nun in der /root/my.cnf und in der /root/.my.cnf als user mysql und das Password für mysql angegeben.
Wenn ich als User aber "root" und das Password eintrage, so geschieht folgendes: ####################################################### andreas-lab:~ # rcmysql status Checking for service MySQL: unused andreas-lab:~ # ps -A | grep mysql andreas-lab:~ # rcmysql start Starting service MySQL mysqld is alive mysqld is alive mysqld is alive mysqld is alive mysqld is alive mysqld is alive mysqld is alive mysqld is alive
failed andreas-lab:~ # mysqld is alive ##################################################
Das sieht so aus, als käme das ping durch, aber es wird dennoch noch failed ausgegeben.
Noch eine Idee? Ja das ist beimir auch so, ignoriere das failed beim booten, die Haptsache mysql funktioniert. Viele Grüße, Heinz Dittmar
DANKE schon einmal,
Andreas
Die Bedeutung von "localhost" ist klar, das "%" steht für _alle_ anderen Hosts! (Man kann auch Rechner-Namen eintragen) In der Password-Spalte steht das i.A. verschlüsselte Password für den User. Die Idee, das Passwort aus diesen Zeichen zurückzugewinnen bitte hier gleich beenden.
Da Du nun (hoffentlich) in der DB bist, kannst Du ein neues Password setzen.
mysql> update user SET Password=PASSWORD("DeinNeuesPassword") where User="thor";
Verwendest Du die PASSWORD()-Fkt nicht, so steht das Password bei einer SELECT-Abfrage im Klartext.
In der Datei /root/my.cnf habe ich alles so eingetragen, wie oben beschrieben (ein Passwort weiss ich aber für den User mysql nicht mehr).
Aber wie oben gesehen, kannst Du es setzen.
[client] user=mysql password=mysql
Vielleicht liegt es ja daran, dann wüsste ich gerne, wie ich das Passwort heraus finden kann!
Entweder steht es im Klartext oder keine Chance.
Gute Nacht Dennis