it-swarm.com.de

Wie finde ich mein Root-MySQL-Passwort heraus?

Ich habe MySQL gerade auf Ubuntu installiert und der Root-Benutzer kann sich nicht anmelden :)

Wie kann ich mein Passwort wiederherstellen oder herausfinden? Die Verwendung eines Leerzeichens für das Kennwort funktioniert nicht.

63
Genadinik

Sie können das root-Passwort zurücksetzen, indem Sie den Server mit --skip-grant-tables ausführen und sich ohne Passwort anmelden, indem Sie Folgendes als root (oder mit Sudo) ausführen:

# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p

Jetzt sollten Sie sich mit Ihrem neuen Passwort als root anmelden können.

Es ist auch möglich, die Abfrage, die das Kennwort zurücksetzt, in /home/$USER/.mysql_history oder /root/.mysql_history des Benutzers zu finden, der das Kennwort zurückgesetzt hat. Die oben genannten Funktionen funktionieren jedoch immer.

Anmerkung: Vor MySQL 5.7 hatte die Spalte password statt authentication_string. Ersetzen Sie die Zeile oben durch

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

Ich weiß, dass dies ein alter Thread ist, aber ich dachte, ich würde ihn mit meinen Ergebnissen aktualisieren.

Alex, es hört sich an, als hätten Sie den MySQL-Server über das Meta-Paket 'mysql-server' installiert. Dadurch wird das neueste Paket als Referenz installiert (in meinem Fall mysql-server-5.5). Ich wurde wie Sie beim Setup nicht wie erwartet zur Eingabe eines MySQL-Passworts aufgefordert. Ich denke, es gibt zwei Antworten:

Lösung 1: Installieren Sie MySQL mit vollem Namen:

$ Sudo apt-get install mysql-server-5.5

Oder

Lösung 2: Konfigurieren Sie das Paket neu ...

$ Sudo dpkg-reconfigure mysql-server-5.5

Sie müssen den vollständigen Paketnamen angeben. Die Verwendung des Metapakets 'mysql-server' hatte nicht das gewünschte Ergebnis für mich. Ich hoffe das hilft jemandem :)

Referenz: https://help.ubuntu.com/12.04/serverguide/mysql.html

18
Sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
FLUSH PRIVILEGES;

mysql -u root -p # and it works
7
Alex Ivasyuv

MySQL 5.5 auf Ubuntu 14.04 erforderte etwas andere Befehle als empfohlen hier . In einer Nussschale:

Sudo /etc/init.d/mysql stop
Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root

Und dann von der MySQL-Eingabeaufforderung

FLUSH PRIVILEGES;
SET PASSWORD FOR [email protected]'localhost' = PASSWORD('password');
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;

Und die zitierte Quelle bietet auch eine alternative Methode an.

7
eebbesen

Für RHEL-mysql 5.5:

/etc/init.d/mysql stop

/etc/init.d/mysql start --skip-grant-tables

 mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
 mysql> FLUSH PRIVILEGES;
 mysql> exit;

mysql -uroot -pnewpwd

mysql>  
3
Gurumurthy

Es gibt eine einfache Lösung.

MySql 5.7 wird mit anonymen Benutzern geliefert, daher müssen Sie den MySQL-Server neu konfigurieren.

Sie können das mit diesem Befehl tun

versuchen Sie, einen Temp Pass zu finden:

grep 'temporary password' /var/log/mysqld.log

dann:

Sudo mysql_secure_installation

Auf diesem Link finden Sie weitere Informationen zu MySQL 5.7

https://dev.mysql.com/doc/refman/5.7/de/linux-installation-yum-repo.html

1
Stevan Tosic

Hmm Mysql 5.7.13, um alles zurückzusetzen, was ich getan habe, war:

$ Sudo service mysql stop Um mysql zu stoppen

$ mysqld_safe --skip-grant-tables & Starten Sie mysql

$ mysql -u root

Genau wie die richtige Antwort. Dann habe ich nur noch das getan, was @eebbesen getan hat.

mysql> SET PASSWORD FOR [email protected]'localhost' = PASSWORD('NEW-password-HERE');

Hoffe, es hilft jemand da draußen :)

1
Joseph Briggs

Es ist eigentlich sehr einfach. Sie müssen nicht viel durchmachen. Führen Sie einfach den folgenden Befehl im Terminal aus und befolgen Sie die Anweisungen auf dem Bildschirm.

Sudo mysql_secure_installation
0

Wenn Sie mysql zu Entwicklungszwecken verwenden, gehen Sie unter MYSQL 5.7 wie folgt vor: 

1. Kill MySQL: 

$ Sudo service mysql stop

2.Starten Sie mysql im Modus --skip-grant-tables: 

$ Sudo mysqld_safe --skip-grant-tables 

außerdem könnten Sie versuchen, die Benutzertabelle im Modus "Überspringen-Grant-Tabelle" zu ändern, obwohl ich versagt habe. 

dies ist also nur ein Workaround.