Wie kann ich das MySQL-Root-Passwort zurücksetzen oder ändern?

178

Wie ändere ich das MySQL-Root-Passwort und den Benutzernamen im Ubuntu-Server? Muss ich den MySQL-Dienst beenden, bevor ich Änderungen vornehmen kann?

Ich habe auch ein phpmyadmin-Setup. Wird phpmyadmin automatisch aktualisiert?

asm234
quelle
Wenn Sie die Daten nicht benötigen, können Sie das Passwort "zurücksetzen", indem Sie MySQL vollständig entfernen: stackoverflow.com/questions/10853004/… und dann erneut installieren (Sie werden aufgefordert, das "neue" Root-Passwort einzugeben). FWIW: )
Rogerdpack
Kennen Sie das MySQL-Root-Passwort?
Franck Dernoncourt
2
In MySQL-Server-5.7 funktionieren diese Methoden nicht. Verwenden Sie 'sudo' ohne Passwort, wie in askubuntu.com/a/848504
Pragalathan M

Antworten:

223

Setzen / ändern / setzen Sie das MySQL-Root-Passwort unter Ubuntu Linux. Geben Sie die folgenden Zeilen in Ihr Terminal ein.

  1. Stoppen Sie den MySQL Server: sudo /etc/init.d/mysql stop
  2. Starten Sie die mysqldKonfiguration:sudo mysqld --skip-grant-tables &

    In einigen Fällen müssen Sie die /var/run/mysqlderste erstellen :

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. Lauf: sudo service mysql start
  4. Melden Sie sich bei MySQL als root an: mysql -u root mysql
  5. Ersetzen Sie YOURNEWPASSWORDdurch Ihr neues Passwort:

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

Hinweis: Wenn in einigen Versionen passwordkeine Spalte vorhanden ist, können Sie Folgendes versuchen:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Hinweis: Diese Methode wird nicht als die sicherste Methode zum Zurücksetzen des Kennworts angesehen, funktioniert jedoch.

Verweise:

  1. Setzen / Ändern / Zurücksetzen des MySQL-Root-Passworts unter Ubuntu Linux
  2. So setzen Sie das Root-Passwort zurück
Christian Mark
quelle
20
Nach diesem Zeitpunkt müssen Sie natürlich den temporären Serverprozess ohne Kennwort beenden, den Sie in Schritt 2 gestartet haben sudo killall -9 mysqld. und dann sudo service mysql startden normalen Daemon neu zu starten ...
Lambart
7
Die Methode in dieser Antwort wird nur zum Zurücksetzen eines MySQL-Root-Passworts benötigt, das Sie nicht kennen [Quelle ]. Wenn Sie es wissen, ist die SET PASSWORDMySQL-Anweisung für Sie.
Tanius
53
Ich folgte bis zum 3. Schritt und ich kann keine Verbindung zum lokalen MySQL-Server über Socket '/var/run/mysqld/mysqld.sock' (2) herstellen, wenn ich
mich
12
In einigen Fällen müssen Sie auch laufen mkdir /var/run/mysqldund chown mysql: /var/run/mysqldzwischen den Schritten 1 und 2
Neville Nazerane
8
Schritt 3 funktionierte bei Ubuntu 18.04 nicht. Ich habe mich gerade mit sudo mysql
itsols
119

Die einzige Methode, die für mich funktioniert hat, ist die hier beschriebene (ich verwende Ubuntu 14.04). Aus Gründen der Klarheit sind dies die Schritte, die ich befolgt habe:

  1. sudo vim /etc/mysql/my.cnf
  2. Fügen Sie am Ende die folgenden Zeilen hinzu:

    [mysqld]
    
    Skip-Grant-Tabellen
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- Überprüfen Sie oben, ob die Kennwortspalte als Kennwort oder als Authentifizierungszeichenfolge bezeichnet wird

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - Verwenden Sie die richtige Passwortspalte von oben

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. Entfernen Sie die in Schritt 2 hinzugefügten Zeilen, wenn Sie Ihre Sicherheitsstandards beibehalten möchten.

  12. sudo service mysql restart

Als Referenz: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

Narko
quelle
8
Endlich hat das bei mir funktioniert! Ich verwende MySQL 5.7.18 unter Ubuntu 16.04. Ich habe versucht, dpkg neu zu konfigurieren, Anveshs Antwort, Christian Marks Antwort und sogar die Anweisungen auf der Hilfeseite von MySQL.
mbuc91
9
Ich musste UPDATE ausführen mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root'; stattdessen für Zeile 5.
mbuc91
2
Die einzige Lösung, die für mich funktioniert hat. Ich habe Ubuntu 17.04 und MySQL 5.7
Mohamed
1
Traurig, dass dies bei mir nicht funktioniert mysql 5.7.22 ubuntu 18.04
Mario
1
Alles funktionierte wie erwartet. Beim Versuch, sich anzumelden, heißt es jedoch: Passwort eingeben: FEHLER 1698 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert
Dipak Chatterjee
101

Die offizielle und einfache Möglichkeit, das Root-Passwort auf einem Ubuntu-Server zurückzusetzen ...

Wenn Sie am 16.04, 14.04, 12.04 sind:

sudo dpkg-reconfigure mysql-server-5.5

Wenn Sie am 10.04 sind:

sudo dpkg-reconfigure mysql-server-5.1

Wenn Sie nicht sicher sind, welche MySQL-Server-Version installiert ist, können Sie Folgendes versuchen:

dpkg --get-selections | grep mysql-server

Aktualisierte Notizen für MySQL-Server-5.7

Beachten Sie, dass Sie bei Verwendung von mysql-server-5.7 die oben gezeigte einfachere dpkg-Rekonfigurationsmethode nicht verwenden können.

Wenn Sie das Passwort kennen, melden Sie sich an und führen Sie Folgendes aus:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

Alternativ können Sie Folgendes verwenden:

sudo mysql_secure_installation

Hier werden Sie eine Reihe von Fragen zum Sichern Ihrer Installation stellen (dringend empfohlen), einschließlich der Frage, ob Sie ein neues Root-Passwort angeben möchten.

Wenn Sie das Root-Passwort NICHT kennen, lesen Sie diese Ubuntu-zentrierte Beschreibung des Prozesses .

Weitere Informationen finden Sie unter:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html

user12345
quelle
3
Funktioniert auch, wenn Sie das ursprüngliche MySQL-Root-Passwort verloren haben - schön.
Tanius
4
Funktioniert mitVer 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage
Arbeitete auch mit MySQL v 5.0 ...sudo dpkg-reconfigure mysql-server-5.0
Dsghi
4
sudo dpkg-rekonfiguriere mysql-server-5.7 funktioniert nicht für Ubuntu 18.04 zum Zurücksetzen des Root-Passworts. Irgendeine andere Alternative?
Jagdeep Singh
Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
Kenorb
76

Ich teile die schrittweise endgültige Lösung zum Zurücksetzen eines MySQL-Passworts in Linux Ubuntu.

Referenz aus dem Blog (dbrnd.com)

Schritt 1: Beenden Sie den MySQL-Dienst.

sudo stop mysql

Schritt 2: Töte alle laufenden mysqld.

sudo killall -9 mysqld

Schritt 3: Starten von mysqld im abgesicherten Modus.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Schritt 4: Starten Sie den MySQL-Client

mysql -u root

Schritt 5: Führen Sie nach erfolgreicher Anmeldung diesen Befehl aus, um ein Kennwort zu ändern.

FLUSH PRIVILEGES;

Schritt 6: Sie können das MySQL-Root-Passwort aktualisieren.

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

Hinweis : Unter MySQL 5.7 wird die Spalte Passwordaufgerufen authentication_string.

Schritt 7: Bitte führen Sie diesen Befehl aus.

FLUSH PRIVILEGES;
Anvesh
quelle
Tatsächlich. Es ist auch näher an der offiziellen Dokumentation . Falls Sie auf Folgendes stoßen: "FEHLER 1524 (HY000): Plugin 'auth_socket' ist nicht geladen", werfen Sie
Wtower
Ich musste auch mysql.user.plugin von 'auth_socket' in 'mysql_native_password' für meinen Root-Benutzer mit dem Host 'localhost' ändern.
Brandon
1
Ich musste "sudo /etc/init.d/mysql stop" verwenden, um den Dienst zu stoppen, und "UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root';" um das Passwort zu aktualisieren
L Bahr
1
authentifizierte _string half
Faiyaz Md Abdul
76

Was hat bei mir funktioniert (Ubuntu 16.04, MySQL 5.7):

Stoppen Sie MySQL

sudo service mysql stop

Erstellen Sie das MySQL-Dienstverzeichnis.

sudo mkdir /var/run/mysqld

Geben Sie dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben.

sudo chown mysql: /var/run/mysqld

Starten Sie MySQL manuell, ohne Berechtigungsprüfungen oder Netzwerk.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Melden Sie sich auf einer anderen Konsole ohne Kennwort an.

mysql -uroot mysql

Dann:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

Schalten Sie MySQL aus.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Starten Sie den MySQL-Dienst normal.

sudo service mysql start
Fabriciofreitag
quelle
Die anderen Wege haben bei mir nicht funktioniert, aber dieser (danke!), Oder Sie können auch hier gehen rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung
10
Sehr hilfreich ! In meinem speziellen Fall (Ubuntu 18.04 LTS) musste ich den Host '%' durch 'localhost' ersetzen
FredericK
Dies hat in Ubuntu 18.04 nicht funktioniert. Aber es funktionierte mit dieser kleinen Änderung, die hier beschrieben wird. Stackoverflow.com/a/53385753/1591143
Aleksandar Popovic
42

Ich hatte Probleme mit Ubuntu 18.04 und MySQL 5.7, dies ist die Lösung

Versuchen Sie, mysql-server neu zu starten, bevor Sie die Befehle ausführen

sudo service mysql restart

MYSQL-SERVER> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL-SERVER <5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
Jerfeson Guerreiro
quelle
1
Danke, ich verwende hier auch Ubuntu 18.04 und die MYSQL-SERVER >= 5.7Version war das einzige, was das Problem tatsächlich gelöst hat
Miguelgraz
1
Dies ist diejenige, die in der MySQL-Installation von Ubuntu 18.04 funktioniert hat. MYSQL-SERVER >= 5.7Version um genau zu sein.
Sathish Manohar
34

Ändern Sie das MySQL-Root-Passwort.

Diese Methode macht das Kennwort für den Befehlszeilenverlauf verfügbar. Diese Befehle sollten als root ausgeführt werden.

  1. Melden Sie sich über das MySQL-Befehlszeilentool an:

    mysql -uroot -poldpassword
  2. Führen Sie diesen Befehl aus:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

oder

  1. Führen Sie diesen Befehl aus, der ein Kennwort für den aktuellen Benutzer festlegt (in diesem Fall 'root'):

    SET PASSWORD = PASSWORD ('neues Passwort');

faisalbhagat
quelle
21

Führen Sie zuerst diesen Befehl aus:

sudo mysql

Anschließend sollten Sie überprüfen, welche Authentifizierungsmethode Ihrer MySQL-Benutzerkonten verwendet wird. Führen Sie diesen Befehl aus

SELECT user,authentication_string,plugin,host FROM mysql.user;

jetzt können Sie so etwas schon sehen:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

In der Tabelle oben können Sie sehen, dass alle MySQL-Benutzer Konten haben und ob Sie ein Passwort für das Root-Konto festgelegt haben, bevor Sie es mysql_native_passwordstattdessen in der Plugin-Spalte sehen auth_socket. Alles in allem sollten Sie zum Ändern Ihres Root-Passworts Folgendes ausführen:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Stellen Sie sicher, dass Sie das Passwort in ein sicheres Passwort Ihrer Wahl ändern. Führen Sie dies aus, um Ihren Server neu zu laden und Ihre neuen Änderungen zu übernehmen.

FLUSH PRIVILEGES;

Überprüfen Sie also erneut die Authentifizierungsmethoden, die von Ihrer MySQL verwendet wurden, mit diesem Befehl:

SELECT user,authentication_string,plugin,host FROM mysql.user;

und jetzt ist die Ausgabe:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

Wie Sie in der Grant-Tabelle sehen können, verfügt Ihr Root-Konto über mysql_native_password . Jetzt können Sie die MYSQL-Shell beenden

exit;

Das war's. Nur du solltest mysql von neu starten sudo service mysql restart. Jetzt können Sie sich ganz einfach mit Ihrem Passwort bei mysql als Root-Konto anmelden.

Amir Karim
quelle
Ich denke, dies ist von DigitalOcean, der einzigen Lösung, die unter Ubuntu 18.04 auf Virtual Box
Kemal
12

Wenn Sie das MySQL-Root-Passwort ändern möchten, geben Sie in ein Terminal Folgendes ein:

sudo dpkg-reconfigure mysql-server-5.5

Der MySQL-Daemon wird gestoppt und Sie werden aufgefordert, ein neues Kennwort einzugeben.

user2206324
quelle
1
Dies ist ein viel besserer Weg, dies zu tun. Ich konnte die vorherigen Befehle wegen eines MySQL-Fehlers nicht ausführen ...
Andy
sudo dpkg-rekonfiguriere mysql-server-5.7 auf ubuntu 16.04
Nick Barrett
2
Ich lief sudo dpkg-reconfigure mysql-server-5.7unter Ubuntu 16.04, es wurde nicht aufgefordert, ein neues Passwort einzugeben.
Franck Dernoncourt
Wenn es heißt mysql-server is broken or not fully installed, kann man sudo apt purge mysql*undsudo apt install mysql-server
Pavel
12

Das funktioniert wie ein Zauber, den ich für Ubuntu 16.04 gemacht habe. Volle Gutschrift auf den unten stehenden Link, wie ich ihn von dort erhalten habe. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts weibl. ]

Stoppen Sie MySQL

sudo service mysql stop

Erstellen Sie das MySQL-Dienstverzeichnis. sudo mkdir / var / run / mysqld

Geben Sie dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben.

sudo chown mysql: /var/run/mysqld

Starten Sie MySQL manuell, ohne Berechtigungsprüfungen oder Netzwerk.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Melden Sie sich ohne Passwort an.

mysql -uroot mysql

Aktualisieren Sie das Kennwort für den Root-Benutzer. Stellen Sie sicher, dass mindestens das Root-Konto durch die folgende Abfrage aktualisiert wird. Treffen Sie eine Auswahl und überprüfen Sie die vorhandenen Werte, wenn Sie möchten

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

Schalten Sie MySQL aus.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Starten Sie den MySQL-Dienst normal.

sudo service mysql start
Eidechse
quelle
11
  1. Stoppen Sie den MySQL- Sudo-Dienst mysql stop

  2. Erstellen Sie das MySQL-Dienstverzeichnis. sudo mkdir / var / run / mysqld

  3. Geben Sie dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben. sudo chown mysql: / var / run / mysqld

  4. Starten Sie MySQL manuell, ohne Berechtigungsprüfungen oder Netzwerk. sudo mysqld_safe --skip-grant-tables --skip-network &

5. Melden Sie sich ohne Passwort an. mysql -uroot mysql

6. Aktualisieren Sie das Kennwort für den Root-Benutzer.

UPDATE mysql.user SET authentication_string = PASSWORD ('YOURNEWPASSWORD'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; AUSFAHRT;

  1. Schalten Sie MySQL aus. sudo mysqladmin -S /var/run/mysqld/mysqld.sock herunterfahren

  2. Starten Sie den MySQL-Dienst normal. sudo service mysql start

Rahul Raveendran
quelle
1
Hallo, diese Antwort funktioniert bei mir, aber ich musste einen anderen Befehl verwenden: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';ohne AND Host='%'. Vielen Dank!
David Corral
10

Das ist die Lösung für mich. Ich arbeite bei Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373

Aber wichtig ist diese Änderung im letzten Schritt:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
juanitourquiza
quelle
Meine Güte! Vielen Dank! Dies ist der einzige Weg, der in meinem Fall funktioniert hat. Vergessen Sie dieses blöde sichere Installationsskript, da es meine frisch installierte Version 5.7 für Benutzer offen hält, ohne jemals nach einem Kennwort zu fragen ... Wenn Linux / Ubuntu für sicherheitsbewusste Benutzer gedacht ist, warum ist es so schwierig, eine wichtige Anwendung wie den MySQL-Server zu schützen? ?
Thomas Urban
9

Diese Lösung gehört zur vorherigen Version von MySQL. Wenn Sie sich mit der Socket-Authentifizierung bei MySQL anmelden, können Sie dies tun.

sudo mysql -u root

Dann könnte der folgende Befehl ausgeführt werden.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Details finden Sie hier .

Huseyin
quelle
1
Ich konnte mich nicht als anmelden, sudo mysql -u rootaber ich konnte es als tun sudo mysqlund den ALTER USERBefehl ausführen .
Itsols
Ich habe folgende Fehlermeldung erhalten: "Ihr Kennwort entspricht nicht den aktuellen Richtlinienanforderungen". Ich konnte dies hier korrigieren: stackoverflow.com/a/43094873/9073437 . Nach dem Festlegen einer geänderten Kennwortrichtlinie funktionierte alles einwandfrei.
Grandtour
7

Befolgen Sie für Ubuntu 18.04 und MySQL Version 14.14 Distrib 5.7.22 den folgenden Schritt, um das MySQL-Passwort zurückzusetzen.

Schritt 1

sudo systemctl stop mysql

Schritt 2

sudo systemctl edit mysql

Dieser Befehl öffnet eine neue Datei im Nano-Editor, mit der Sie die Dienstüberschreibungen von MySQL bearbeiten können. Diese ändern die Standarddienstparameter für MySQL. Diese Datei ist leer. Fügen Sie daher den folgenden Inhalt hinzu:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Schritt 3

sudo systemctl daemon-reload
sudo systemctl start mysql

Schritt 4

sudo mysql -u root

Schritt 5

FLUSH PRIVILEGES;

Schritt 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

Schritt 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

Schritt 8

sudo systemctl revert mysql

und schlussendlich

sudo systemctl restart mysql

Jetzt viel Spaß

Masum Billah
quelle
Ich denke, Sie haben den Inhalt von Schritt 2 verpasst. Er ist unvollständig.
Lucas Mendes Mota Da Fonseca
6

Echo rogerdpacks Kommentar: Wenn Sie das MySQL-Root-Passwort nicht kennen und sich nicht für MySQL-Daten / -Einstellungen interessieren, können Sie es neu installieren und das Root-Passwort wie folgt zurücksetzen:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

Während der Installation können Sie das Passwort des Roots auswählen:

Geben Sie hier die Bildbeschreibung ein

Franck Dernoncourt
quelle
2
Ich wünschte, ich hätte hier angefangen, anstatt eine Stunde damit zu verschwenden, mir den Kopf zu schlagen, um das Passwort zurückzusetzen.
Eric Seastrand
3

Wenn Sie Ihr aktuelles Passwort kennen, müssen Sie den MySQL-Server nicht stoppen. Öffnen Sie das Ubuntu-Terminal. Melden Sie sich bei MySQL an mit:

mysql - username -p

Geben Sie dann Ihr Passwort ein. Dadurch gelangen Sie in die MySQL-Konsole. Geben Sie in der Konsole Folgendes ein:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Löschen Sie dann die Berechtigungen mit:

> flush privileges;

Dann sind Sie alle fertig.

Peter Mutisya
quelle
2

Wenn Sie MySQLs PASSWORD()auf dem System verwenden, auf dem Sie das Kennwort ändern möchten, kann dies dazu führen, dass das Kennwort in einem MySQL-Protokoll im Klartext [ Quelle ] angezeigt wird . Sie, ihre Backups usw. so sicher zu halten, wie das Passwort für mich wie ein Albtraum klingt, deshalb mache ich es lieber wie folgt:

  1. Führen Sie dies auf Ihrem lokalen Computer mit Ihrem Kennwort aus:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    Beachten Sie das Leerzeichen vorne, um zu verhindern, dass es im Bash-Verlauf auftaucht (für andere Distributionen als Ubuntu funktioniert dies möglicherweise anders - Quelle ).

  2. Führen Sie auf Ihrem Servercomputer den folgenden Befehl aus, um das MySQL-Root-Passwort zu ändern (ersetzen myhashSie ihn durch den Hash Ihres Passworts, wie er im ersten Befehl gedruckt wurde):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. Lassen Sie uns optional etwas paranoid sein: Löschen Sie auf Ihrem lokalen Computer den Bildschirm Ihres Terminals mit clearund löschen Sie den Bildlauf des virtuellen Terminals, um das im obigen Befehl angezeigte Klartextkennwort auszublenden.

Tanius
quelle
2

Um das "root" MySQL-Benutzerpasswort zu aktualisieren, müssen Sie berücksichtigen, dass Sie dafür Superuser-Berechtigungen benötigen. Wenn Sie Superuser-Berechtigungen haben, versuchen Sie die folgenden Befehle:

MySQL 5.7.6 und höher

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 und früher

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
Alvaropaco
quelle
2

Du brauchst das alles nicht. Einfach einloggen:

mysql -u root -p

Ändern Sie dann das Kennwort des aktuellen Benutzers als mysql>Eingabeaufforderung:

mysql> set password=password('the_new_password');
mysql> flush privileges;
mprivat
quelle
1
Dies ist der einfachste Weg! Es funktioniert für mich mit MySQL 5.7.21-0ubuntu0.17.10.1
Sergio Belevskij
2

Die meisten Antworten zu diesem Thema sind veraltet. Bis zum Schreiben dieser Antwort haben sich in MySQL zwei wesentliche Änderungen ergeben:

1- Das Feld 'Passwort' in der Benutzertabelle wurde durch die Spalte 'authentication_string' ersetzt.

2- Die Verschlüsselungsfunktion 'Passwort': PASSWORT ("von etwas Text") ist veraltet.

Weitere Informationen finden Sie unter diesem Link : dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Elie Asmar
quelle
1

Anstatt das Kennwort zurückzusetzen, wird auf dem lokalen Computer eine Problemumgehung durchgeführt phpmyadmin, wenn Sie eine Verbindung hergestellt haben, ohne das Kennwort oder den Benutzernamen anzugeben. Check this out durch das Starten mysql, apacheetc. Ich habe xamppin meinem lokalen Rechner installiert. Wenn Sie also xampp starten, werden alle erforderlichen Dienste gestartet. Jetzt http://localhost/phpmyadminzeige ich mir alle Datenbanken. Dies bestätigt, dass Sie den Benutzernamen und das Kennwort in der Konfigurationsdatei von phpmyadmin gespeichert haben, die sich am phpmyadminInstallationsort befindet. Wenn Sie xamppden phpmyadminOrdner installiert haben , finden Sie ihn im Stammverzeichnis der xamppInstallation. Suchen Sie nach dem Wort passwordin der config.inc.phpDatei. Dort finden Sie das password und username.

Joseph
quelle
1

Sie können das MySQL-Passwort einfach ändern, wenn es auf xampp über die bereitgestellte phpadmin-GUI bereitgestellt wird.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
Mohd Arshil
quelle
1

Für MySQL 5.6 funktioniert dieser Befehl und Sie können das Passwort über den Assistenten festlegen:

sudo dpkg-reconfigure mysql-server-5.6
MSS
quelle
Ich habe es versucht, aber es funktioniert nicht. Ich erhalte den folgenden Fehler. Könnten Sie bitte helfen? Diese Installation von MySQL ist bereits auf 5.7.21 aktualisiert. Verwenden Sie --force, wenn Sie mysql_upgrade
Vijaysinh Parmar am
1

Sie können diese Schritte ausführen, um das Root-Passwort für MySQL 5.7 zurückzusetzen:

Beenden Sie den MySQL-Dienst 1 ..

sudo /etc/init.d/mysql stop 

Melden Sie sich als root ohne Passwort sudo mysqld_safe --skip-grant-tables& an

Nach dem Login-MySQL-Terminal sollten Sie weitere Ausführungsbefehle benötigen:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Nach dem Neustart Ihres MySQL- Servers Wenn immer noch ein Fehler auftritt, müssen Sie Folgendes besuchen: Zurücksetzen des MySQL 5.7-Root-Passworts Ubuntu 16.04

Inderpal Singh
quelle
1

Sie können diesen Befehl verwenden:

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

danach bitte spülen:

FLUSH PRIVILEGES;
Rahul Karande
quelle
1

Festlegen des MySQL-Passworts

  1. Beenden Sie den MySQL-Datenbankdienst

sudo /etc/init.d/mysql stop

  1. Erstelle ein neues mysqld-Verzeichnis

sudo mkdir / var / run / mysqld /

  1. Geben Sie MySQL-Benutzer Zugriff

sudo chown mysql / var / run / mysqld /

  1. Starten Sie MySQL im abgesicherten Modus ...

sudo mysqld_safe --skip-grant-tables &

  1. Melden Sie sich ohne Kennwort beim Datenbankserver an

sudo mysql -u root

  1. Verwenden Sie die Standard-MySQL-Datenbank

benutze MySQL;

  1. Ändern Sie das Root-Passwort

update user set authentication_string=PASSWORD("New_Passwore_Here") where User = 'root';

  1. Speichern Sie die Änderungen

    Flush-Berechtigungen; Ausfahrt;

  2. Beenden Sie MySQL safe_mode und starten Sie den MySQL-Standarddienst

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start

  1. Melden Sie sich mit dem neuen Root-Passwort wieder bei der MySQL-Datenbank an

sudo mysql -u root -p

*** Quelle: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/

Viraj
quelle
1

Wenn Sie das Kennwort des Root-Benutzers kennen, melden Sie sich mit diesen Anmeldeinformationen bei mysql an. Führen Sie dann die folgende Abfrage aus, um das Kennwort zu aktualisieren.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Udara Seneviratne
quelle
0

Beim Ändern / Zurücksetzen des MySQL-Passworts haben die folgenden oben aufgeführten Befehle nicht geholfen. Ich fand es sinnlos, in das Terminal zu gehen und diese Befehle zu verwenden. Verwenden Sie stattdessen den Befehl sudo stop alles. LÖSCHEN SIE SYSTEM 32 für Windows, wenn dies hilfreich ist.

Felsen
quelle
1
Die Frage betrifft das ubuntuBetriebssystem, nicht Windows. Was meinst du mit DELETE SYSTEM 32 für Windows ?
EhsanT
0

Um das Passwort zurückzusetzen oder zu ändern, geben Sie ein sudo dpkg-reconfigure mysql-server-X.X(XX ist die von Ihnen installierte MySQL-Version, z. B. 5.6, 5.7). Anschließend werden Sie auf einem Bildschirm aufgefordert, das neue Passwort festzulegen. Im nächsten Schritt bestätigen Sie das Passwort und warten einen Moment. Das ist es.

Gaurav Paliwal
quelle
0

Ich musste diesen Weg unter Ubuntu 16.04.1 LTS gehen. Es ist eine Mischung aus einigen der anderen Antworten oben - aber keine von ihnen hat geholfen. Ich habe eine Stunde oder länger damit verbracht, alle anderen Vorschläge von der MySql-Website für alles auf SO auszuprobieren. Ich habe es schließlich zum Laufen gebracht:

Hinweis: Während es "Passwort für Benutzer root eingeben" zeigte, hatte ich nicht das ursprüngliche Passwort, also habe ich nur das gleiche Passwort für eingegeben als neues Passwort verwendet werden.

Hinweis: Es gab nur /var/log/mysqld.log /var/log/mysql/error.log. Beachten Sie

auch, dass dies bei mir nicht funktioniert hat:
sudo dpkg-reconfigure mysql-server-5.7

Auch nicht:
sudo dpkg-reconfigure --force mysql-server-5.5

MySQL-Dienstverzeichnis erstellen .
sudo mkdir /var/run/mysqld

Geben Sie dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben.
sudo chown mysql: /var/run/mysqld

Dann:

  1. töte die aktuelle mysqld pid
  2. Führen Sie mysqld mit sudo / usr / sbin / mysqld & aus
  3. run / usr / bin / mysql_secure_installation

    Ausgabe von mysql_secure_installation

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    Sichern der MySQL Server-Bereitstellung.

    Passwort für Benutzer root eingeben:

    Mit VALIDATE PASSWORD PLUGIN können Kennwörter getestet und die Sicherheit verbessert werden. Es überprüft die Stärke des Kennworts und ermöglicht es den Benutzern, nur die Kennwörter festzulegen, die sicher genug sind. Möchten Sie das VALIDATE PASSWORD Plugin einrichten?

    Drücken Sie y | Y für Ja, eine andere Taste für Nein: Nein. Vorhandenes Kennwort für root verwenden. Passwort für root ändern? ((Drücken Sie y | Y für Ja, eine andere Taste für Nein): y

    Neues Kennwort:

    Neues Kennwort erneut eingeben: Standardmäßig verfügt eine MySQL-Installation über einen anonymen Benutzer, sodass sich jeder bei MySQL anmelden kann, ohne dass ein Benutzerkonto für ihn erstellt werden muss. Dies ist nur zum Testen gedacht und um die Installation etwas reibungsloser zu gestalten. Sie sollten sie entfernen, bevor Sie in eine Produktionsumgebung wechseln.

    Anonyme Benutzer entfernen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y Erfolgreich.

    Normalerweise sollte root nur von 'localhost' aus eine Verbindung herstellen dürfen. Dies stellt sicher, dass jemand das Root-Passwort aus dem Netzwerk nicht erraten kann.

    Remote-Login aus der Ferne nicht zulassen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y Erfolgreich.

    Standardmäßig wird MySQL mit einer Datenbank namens "test" geliefert, auf die jeder zugreifen kann. Dies ist auch nur zum Testen vorgesehen und sollte vor dem Umzug in eine Produktionsumgebung entfernt werden.

    Testdatenbank entfernen und darauf zugreifen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y

    • Testdatenbank löschen ... Erfolg.

    • Entfernen von Berechtigungen für die Testdatenbank ... Erfolgreich.

    Durch das erneute Laden der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen sofort wirksam werden.

    Berechtigungstabellen jetzt neu laden? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y Erfolgreich.

    Alles erledigt!

JGlass
quelle