it-swarm.com.de

Zugriff für Benutzer 'root' @ 'localhost' (mit Kennwort: Ja) nach Zurücksetzen des Kennworts von LINUX verweigert

Auf meinem Linux-Server ist ein MySQL-Server installiert. Ich habe das Kennwort vergessen. Ich habe es dann mit den im Web gefundenen Methoden geändert. Was ich tat, war wie folgt:

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql --user root mysql
SELECT * FROM user; // I checked if I could access the user table or not
update user SET password = PASSWORD('new_pass') WHERE user = 'root';
flush privileges;
exit

Bei der Aktualisierungsabfrage wurde das Kennwort geändert, da die Anzahl der betroffenen Zeilen und die Abfrage OK angezeigt wurden.

Dann habe ich mysql neu gestartet

/etc/init.d/mysql stop
/etc/init.d/mysql start

Jetzt wenn ich mich mit dem neuen Passwort angemeldet habe 

mysql -u root -p new_pass

es gibt mir immer noch Fehler "FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' (mit Kennwort: Ja) verweigert"

Gibt es etwas, das mir fehlt?

9
progrAmmar

Eigentlich habe ich mir die Benutzertabelle in der MySQL-Datenbank genauer angesehen. Es stellte sich heraus, dass jemand vor mir das ssl_type-Feld für den Benutzer root in SSL geändert hat.

Ich habe dieses Feld bearbeitet und mysql neu gestartet. Es funktionierte wie ein Zauber.

Vielen Dank.

0
progrAmmar

Ich konnte dieses Problem durch Ausführen dieser Anweisung lösen

Sudo dpkg-reconfigure mysql-server-5.5

Dadurch wird das root-Passwort geändert.

17
Divz

Sie können das Kennwort für das MySQL-Datenbankserver mit den folgenden fünf einfachen Schritten wiederherstellen.

Schritt 1: Stoppen Sie den MySQL-Dienst

/etc/init.d/mysql stop

Ausgabe:

Stopping MySQL database server: mysqld.

Schritt 2: Starten Sie den MySQL-Server ohne Passwort:

mysqld_safe --skip-grant-tables &

Ausgabe:

[1] 5988

Starting mysqld daemon with databases from /var/lib/mysql

mysqld_safe[6025]: started

Schritt 3: Verbinden Sie sich mit dem mysql-Server mit dem mysql-client:

mysql -u root

Ausgabe:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Schritt 4: Richten Sie ein neues MySQL-Root-Benutzerpasswort ein

mysql> use mysql;

mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';

mysql> flush privileges;

mysql> quit

Schritt 5: Stoppen Sie MySQL Server:

/etc/init.d/mysql stop

Ausgabe:

Stopping MySQL database server: mysqld

STOPPING server from pid file /var/run/mysqld/mysqld.pid

mysqld_safe[6186]: ended

[1]+  Done                    mysqld_safe --skip-grant-tables

Schritt # 6: Starten Sie den MySQL-Server und testen Sie ihn

/etc/init.d/mysql start

mysql -u root -p
10
Tell Me How

Sie müssen das Passwort zurücksetzen! Schritte für Mac OSX (getestet und funktionieren) und Ubuntu

Stoppen Sie MySQL

$ Sudo /usr/local/mysql/support-files/mysql.server stop

Starten Sie es im abgesicherten Modus:

$ Sudo mysqld_safe --skip-grant-tables

(über der Zeile steht der ganze Befehl)

Dies ist ein fortlaufender Befehl, bis der Prozess abgeschlossen ist. Öffnen Sie ein weiteres Shell/Terminal-Fenster und melden Sie sich ohne Kennwort an:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

Starten Sie MySQL

Sudo /usr/local/mysql/support-files/mysql.server start

ihr neues Passwort lautet 'Passwort'.

6
tk_

Ich hatte das gleiche Problem. Sie müssen mysql -u root -p schreiben

NICHT mysql oder mysql -u root -p root_password

3
user3911158

Möglicherweise müssen Sie die Spalte plugin für Ihr Root-Konto löschen. Bei meiner Neuinstallation hatten alle Root-Benutzerkonten unix_socket in der Spalte plugin festgelegt. Dies hatte zur Folge, dass das Root-SQL-Konto nur für das Root-Unix-Konto gesperrt wurde, da sich nur das System-Root über Socket anmelden konnte.

Wenn Sie update user set plugin='' where User='root';flush privileges; sind, können Sie sich jetzt von jedem Localhost-Unix-Konto (mit einem Kennwort) beim Root-Konto anmelden.

Siehe diese AskUbuntu-Frage und Antwort für weitere Details.

2

Ich habe das gleiche Problem, @ progrAmmar klärte mich auf, "sah die Benutzertabelle in der mysql-Datenbank genauer an".

Mein Problem ist nicht ssl_type, sondern das erste Feld: Host. Ich habe den Wert mit geändert 

update user set Host='localhost' where User='root' and Host='%';

in mysqld_safe --skip-grant-tables modell. 

Dann funktioniert es gut.

2
Belter

Auf Mac OS folgen Sie bitte den folgenden Schritten:

Stoppen Sie MySQL

$ Sudo /usr/local/mysql/support-files/mysql.server stop Starten Sie es im abgesicherten Modus:

$ Sudo mysqld_safe --skip-grant-tables (Über der Zeile steht der gesamte Befehl)

Dies ist ein fortlaufender Befehl, bis der Prozess abgeschlossen ist. Öffnen Sie ein weiteres Shell/Terminal-Fenster und melden Sie sich ohne Kennwort an:

$ mysql -u root

mysql> UPDATE mysql.user SET Password = PASSWORD ('password') WHERE User = 'root'; Starten Sie MySQL

Sudo /usr/local/mysql/support-files/mysql.server start Ihr neues Passwort lautet 'password'.

1
Yang Wang

In meinem Fall:

  1. /etc/init.d/mysql stop
  2. mysqld_safe --skip-grant-tables & 

(in neuem Fenster)

  1. mysql -u root
  2. mysql> use mysql;
  3. mysql> update user set authentication_string = Passwort ('Passwort') wobei Benutzer = 'root';
  4. mySQL> Flush-Berechtigungen;
  5. mysql> quit
  6. /etc/init.d/mysql neu starten
0
Michal