Was ist mein MySQL-Root-Passwort?

585
Hector

Ich habe gerade den mysql-server mit dem folgenden Befehl installiert

$ sudo apt install mysql-server mysql-client mysql-common 

Wenn ich dann den Befehl rufe, mysql_secure_installationfragt MySQL nach dem Root-Passwort:

uxm

Ich habe kein Kennwort für den mysql-server festgelegt und fragt mich danach.

Wie kann ich das richtige Passwort einstellen? Gibt es ein Standardkennwort?

1
Ich hatte nichts eingerichtet Hector vor 5 Jahren 0
Bitte posten Sie Text, kein Link zu einem Bild. RalfFriedl vor 5 Jahren 0

2 Antworten auf die Frage

2
JakeGould

Das ursprüngliche Poster behauptet, in dieser Antwort eine Lösung für dieses Problem gefunden zu haben, machte jedoch für mich keinen Sinn. Aber jetzt verstehe ich, dass einige Debian / Ubuntu-Distributionen eine Socket-basierte Authentifizierungsmethode verwenden. Diese standardmäßig aktivierte Authentifizierungsmethode würde natürlich eine Verwendung erfordern sudo, um in MySQL einzusteigen, wie sie beschrieben werden.

Im Allgemeinen gibt es jedoch keinen Grund, mysql_secure_installationüber zu laufen sudo. Das macht in den meisten Fällen keinen Sinn, da MySQL sudofür eine Client-Transaktion wie diese nicht benötigt wird ... Wenn nicht die Socket-basierte Authentifizierung im Spiel ist. Und es mysql_secure_installationist nur ein Bash-Skript, das eine Reihe von Befehlen in einem schönen, praktischen Paket ausführt, um die Aktualisierung einiger Sicherheitselemente im Zusammenhang mit MySQL zu ermöglichen. Schauen Sie sich den Quellcode an, um zu sehen, was ich meine.

Wenn Sie sich also auf einem System befinden, das keine sockelbasierte Authentifizierung verwendet und ein ähnliches Problem auftritt, besteht die Lösung darin, dass das Kennwort für ältere Versionen von MySQL leer ist. Also würden Sie einfach das ausführen, um in MySQL zu gelangen:

mysql -uroot -p 

Oder im Fall von mysql_secure_installation, einfach drücken Returnoder Enterwenn Sie nach einem Passwort gefragt werden.

Bei modernen MySQL-Versionen - ich glaube, MySQL 5.7 oder höher - müssen Sie das Fehlerprotokoll auf eine Nachricht wie diese überprüfen:

“2016-05-16T07: 09: 49.796912Z 1 [Hinweis] Für root @ localhost wird ein temporäres Kennwort generiert: 8) 13ftQG5OYl”

Dies ist ein Beispiel aus dem Persona-Blogeintrag zu diesem Thema . Wo sich dieser MySQL-Protokolleintrag befindet, kann sich dieser /var/log/mysqld.logauf einem CentOS / RedHat-Server befinden oder als Ausgabe der Paketinstallation auf Ubuntu / Debian-Systemen angezeigt werden.

rootWenn Sie jedoch einfach das Fehlerprotokoll auf den Text "Temporäres Kennwort" prüfen, erhalten Sie das ursprüngliche Kennwort, das MySQL bei der Erstinstallation festlegt.

Welche Version von MySQL hast du? Hector vor 5 Jahren 0
@Hector Was ist die Version von MySQL? Sehen Sie sich meine Bearbeitung an, um zu verstehen, was ich meine. JakeGould vor 5 Jahren 0
Dies ist die Meldung in der Fehlerprotokolldatei `2018-11-23T01: 04: 26.841276Z 1 [Warnung] root @ localhost wird mit einem leeren Kennwort erstellt! Deaktivieren Sie die Option --initialize-insecure. ` Hector vor 5 Jahren 1
Außerdem habe ich das Passwort geändert, indem Sie den Schritt 3 dieser Digital Ocean MySQL-Installation und -Konfiguration https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04 durchgeführt haben. Aber ich musste mich in `mysql` einfinden. Ich starte den Server neu, überprüfte den MySQL-Login und brauche nicht vom Terminal zum Server zu MySQL zu gelangen. Hector vor 5 Jahren 0
@Hector Wenn in der Fehlermeldung "root @ localhost" mit einem leeren Kennwort erstellt wird ", gilt der erste Teil meiner Antwort, in dem ich sage, dass Sie nur ein leeres Kennwort eingeben können, als" wahr ". Ihre Installation von MySQL wurde ohne Kennwort eingerichtet. Um MySQL geschützt zu bekommen, müssen Sie nur mysql_secure_installation ausführen. Wenn Sie nach einem Kennwort gefragt werden, drücken Sie einfach die Eingabetaste oder die Eingabetaste, und Sie werden festgelegt. JakeGould vor 5 Jahren 0
Nun, ich wusste es nicht. Ich hatte bereits lokale Server auf der virtuellen Box eingerichtet und dies ist das erste Mal, dass es passiert. Ich habe "Return" gedrückt und nichts geschah. Ich werde es in einem anderen Server erneut versuchen. Für jetzt kann ich mich einloggen. Vielen Dank. Hector vor 5 Jahren 1
0
Hector

Ich habe die Lösung gefunden. Es muss als ausgeführt werdensuperuser

Ich musste ausführen $ sudo mysql_secure_installation

Auch wenn ich mich mysqlam Terminal anmelden möchte, muss ich sudoes

[Überprüfen Sie meine Antwort] (https://superuser.com/a/1377703/167207). Es gibt keinen Grund, warum Sie `mysql`-Befehle über` sudo` ausführen müssen. JakeGould vor 5 Jahren 0
@JakeGould eigentlich .. In den letzten Installationen (Ubuntu, Minze, vielleicht Debian) wurde die Unix-Socket-Authentifizierung verwendet. Wenn die Verbindung über Socket hergestellt wird (Standardeinstellung für `mysql`-Client), wird der * nix-Benutzername als vertrauenswürdig eingestuft und die Authentifizierung erfolgt automatisch. Ich bin vor ein paar Monaten zum ersten Mal in den Wahnsinn geraten, da er normalerweise "Neustart ohne Privats und ein neues Passwort für root" ausgeführt hat. Alle Schritte funktionieren ohne Fehler oder andere Hinweise. Es gibt eine weitere Spalte, die aktualisiert werden muss, um das gesetzte Kennwort im Vergleich zu Socket-Authentifizierung zu verwenden. ivanivan vor 5 Jahren 1
@ivanivan Gut zu wissen. Informieren Sie sich darüber und es scheint, dass genau das Szenario vor dem ursprünglichen Poster stand. Meine Antwort wurde aktualisiert, um diese neuen Informationen widerzuspiegeln. JakeGould vor 5 Jahren 1