via ssh mysql benutzer löschen?

Steffen_

New Member
Hallo zusammen,

tut mir leid, sollte es der falsche Thread sein, indem ich meine Frage stelle, hab mich heute erst neu registriert.

Ich habe ein sehr großes Problem, ich habe mir aus irgendeinem Grund (keine Ahnung wie ^^) bei meinem root User das Passwort geändert und kann nun nicht mehr auf meine MySQL Datenbank zugreifen.

Fehlermeldung:
Code:
#2002 Die Anmeldung am MySQL-Server ist fehlgeschlagen.

Soweit so gut. Ich habe dann den folgenden Befehl ausgeführt um mein root Passwort via SSH wieder zurück zu setzen:

Code:
mysqld --user=mysql --skip-networking --skip-grant-tables --datadir=/var/lib/mysql & su - mysql -c "mysqladmin --user root password 'NEUESPASSWORT'"

Nachdem ich das gemacht habe, hab ich mich auf einer anderen Kosole mit "mysql" einloggen können, da ja mit dem Befehl alle Tabellen ausgeschaltet werden.

Nun wollte ich mit:
Code:
UPDATE mysql.user SET Password=PASSWORD('NEUESPASSWORT') WHERE User='root';

das Passwort ändern, jedoch kommt dann die Meldung:
Code:
Query OK, 0 rows affected (0.00 sec)
Rows matched: 3 Changed: 0 Warnings: 0

Das bedeutet ja, dass 3 Einträge mit dem Usernamen "root" gefunden worden sind. Wie bekomme ich das jetzt hin, dass ich zwei Benutzer löschen kann und ich dann das Passwort von meinem root ändern kann?

Vielen Dank,
LG Steffen_
 
Das bedeutet ja, dass 3 Einträge mit dem Usernamen "root" gefunden worden sind. Wie bekomme ich das jetzt hin, dass ich zwei Benutzer löschen kann und ich dann das Passwort von meinem root ändern kann?

Was verstehst du unter "deinem root"?
Die 3 root Nutzer werden die root-Benutzer für die Hosts, "$DEINHOSTNAME", "127.0.0.1" und "localhost" sein.

€dit: Von diesen 3 hast du die Passwörter in einem Rutsch gesetzt

Lass dir doch sonst einfach mal einzeigen, welche root-Nutzer es gibt.

Code:
use mysql;
SELECT `host`,`user`,`password` FROM users WHERE user LIKE 'root';

PS: Vielleicht hilft sonst ja das hier ein bisschen weiter:
http://www.techotopia.com/index.php/MySQL_Users_and_Security

Grüße
Sammy8806
 
Last edited by a moderator:
Hi,

danke schonmal für deine Antwort =)

Also der Support von meinem Server meinte, dass ich das root Passwort, womit ich mich immer in phpMyAdmin einlogge, nicht ändern kann, da 3 Einträge vorhanden sind.

LG

EDIT: Sobald ich deinen Code ausführe kommt die meldung:

ERROR 1046 (3D000): No database selected

EDIT2: Jetzt erscheint die Fehlermeldung:

ERROR 1146 (42S02): Table 'mysql.users' doesn't exist

Das dritte mal, dass ich meinen Beitrag geändert habe ^^

Also, bin jetzt mal deinem Link gefolgt und habe "SELECT user FROM user;" eingegeben. und es sind tatsächlich 3 mal root zu finden.

Danach habe ich

Code:
SELECT host, user, password FROM user WHERE user='root';

eingegeben.

Es erscheint die Liste mit 3 root Benutzern, jedoch fehlt localhost.
 
Last edited by a moderator:
Hey,

also grundsätzlich sollte dies eigendlich möglich sein.

Versuche doch einmal einen Nutzer "root"@"%" anzulegen, dem du dein Passwort zuweist und die anderen löscht.

Kurze Erkläreung: "%" ist der Platzhalter für jeden Host.

Im Normalfall sollte allerdings, auch der Eintrag "root"@"localhost" reichen, um dich Normal über die Serverkonsole anzumelden.

PS: Tschuldigung, ja die Tabelle heisst "user" nicht "users".
 
Hi =)

Danke, hatte ich eben schon ausprobiert und hat geholfen. Der User root für localhost wurde erstellt und ich konnte mich wieder mit meinem passwort einloggen. Keine Ahnung, wieso der gelöscht war.

Eine Kurze Frage noch, wie kann ich dem neu erstellen root@localhost volle rechte via SSH geben?


LG

EDIT: Hat sich erledigt. =) Vielen Dank für die Hilfe =)
 
Last edited by a moderator:
Back
Top