Ich kann mein MySQL-Root-Passwort nicht herausfinden. Wie kann ich das herausfinden? Gibt es eine Datei, in der dieses Passwort gespeichert ist?
Ich folge diesem link aber ich habe kein directadmin Verzeichnis im lokalen.
dank @thusharaK konnte ich das root-Passwort zurücksetzen, ohne das alte Passwort zu kennen.
Auf Ubuntu habe ich folgendes gemacht:
Sudo service mysql stop
Sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Führen Sie dann mysql in einem neuen Terminal aus:
mysql -u root
Führen Sie die folgenden Abfragen aus, um das Kennwort zu ändern:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
In MySQL 5.7 wurde das Kennwortfeld im Tabellenfeld mysql.user entfernt. Der Feldname lautet nun 'authentication_string'.
Beenden Sie den abgesicherten Modus von mysql und starten Sie den mysql-Dienst durch:
mysqladmin shutdown
Sudo service mysql start
Das gehashte Passwort kann nicht angezeigt werden. Sie können es nur zurücksetzen!
Stoppen Sie MySQL:
Sudo service mysql stop
oder
$ 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';
MySQL 5.7 und höher:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Starten Sie MySQL:
Sudo mysql start
oder
Sudo /usr/local/mysql/support-files/mysql.server start
Ihr neues Passwort lautet 'Passwort'.
MySQL 5.7 und höher speichert root in der MySQL-Protokolldatei.
Bitte versuchen Sie das:
Sudo grep 'temporary password' /var/log/mysqld.log
Du kannst es nicht finden. Es wird in einer Datenbank gespeichert, für die Sie das Root-Passwort benötigen. Selbst wenn Sie irgendwie Zugang erhalten haben, wird es mit einem Einweg-Hash gehasht. Sie können es zurücksetzen: http://dev.mysql.com/doc/refman/5.0/de/resetting-permissions.html
Befolgen Sie diese Schritte, um das Kennwort im Windows-System zurückzusetzen
Stoppen Sie den MySQL-Dienst im Task-Manager
Erstellen Sie eine Textdatei und fügen Sie die folgende Anweisung ein
MySQL 5.7.5 und früher:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 und höher:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Speichern als mysql-init.txt
und platziere es in 'C' drive
.
Öffnen Sie die Eingabeaufforderung und fügen Sie Folgendes ein
C:\> mysqld --init-file=C:\\mysql-init.txt
Wenn der Package Manager Sie nicht während der Installation zur Eingabe des Root-Passworts auffordert, ist das Standard-Root-Passwort die leere Zeichenfolge. Um eine Verbindung zu einem neu installierten Server herzustellen, geben Sie Folgendes ein:
Shell> mysql -u root --password=
mysql>
Um das Passwort zu ändern, rufen Sie die Unix-Shell zurück und geben Sie Folgendes ein:
Shell> mysqladmin -u root --password= password root
Das neue Passwort lautet 'root'. Verbinden Sie sich jetzt mit dem Server:
Shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Hoppla, das Passwort hat sich geändert. Verwenden Sie die neue Variable root
:
Shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Bingo! Neues machen etwas interessantes
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Zusätzlich zu den anderen Antworten wird in einer Cpanel-Installation das mysql-root-Passwort in einer Datei mit dem Namen /root/.my.cnf
gespeichert. (und der Cpanel-Dienst setzt ihn bei einer Änderung zurück, sodass die anderen Antworten hier nicht weiterhelfen)
Das Standardkennwort, das nach der sofortigen Installation des mysql-Servers für mich funktioniert hat, lautet: mysql
sie können MySQL-Root-Passwort anzeigen. Nun, ich habe es auf MySQL 5.5 ausprobiert
nano ~/.my.cnf
Das hat für mich funktioniert:
Geben Sie am Terminal Folgendes ein
$ Sudo mysql -u root -p
Passwort eingeben: // einfach Enter drücken
mysql>
eine Sache, die mich auf eine neue Installation von mySQL aufmerksam machte und mich fragte, warum ich das Standardkennwort nicht zum Laufen bringen konnte und warum sogar die Reset-Methoden nicht funktionierten. Nun stellt sich heraus, dass auf Ubuntu 18 die neueste Version von MySQL Server standardmäßig überhaupt keine Kennwortauthentifizierung für den Root-Benutzer verwendet. Das bedeutet, dass es keine Rolle spielt, auf was Sie es eingestellt haben, und dass Sie es nicht verwenden können. Es wird erwartet, dass Sie sich von einem privilegierten Socket aus anmelden. so
mysql -u root -p
funktioniert überhaupt nicht, auch wenn Sie das richtige Passwort verwenden !!! Der Zugriff wird verweigert, egal was Sie eingeben.
Stattdessen müssen Sie verwenden
Sudo mysql
das funktioniert ohne Passwort. Dann, sobald Sie drin sind, müssen Sie eintippen
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
dann melde dich ab und jetzt akzeptiert das verdammte Ding endlich dein Passwort
Suchen Sie in Ihrer "hostname" .err-Datei im Datenordner, in der MySQL arbeitet, nach einer Zeichenfolge, die mit folgendem beginnt:
"Für roor @ localhost wird ein temporäres Passwort generiert."
sie können verwenden
less /mysql/data/dir/hostname.err
dann den Befehl slash gefolgt von der Zeichenfolge, nach der Sie suchen möchten
/"A temporary password"
Drücken Sie dann n, um zum nächsten Ergebnis zu gelangen.
Die Prozedur ändert sich je nach Version von MySql. Folgen Sie den Anweisungen genau wie für Ihre Version beschrieben:
HINWEISE - Lesen Sie vor der Anleitung für Ihre Version von MySql *
In Schritt 5: Erstellen Sie anstelle von CMD eine Verknüpfung auf Ihrem Desktop, die CDM.exe aufruft. Klicken Sie dann mit der rechten Maustaste auf die Verknüpfung und wählen Sie "Als Administrator ausführen".
In Schritt 6: Überspringen Sie die erste vorgeschlagene Version des Befehls und führen Sie die zweite aus, die mit dem Parameter --defaults-file
Wenn Sie den Befehl ausgeführt haben und alles in Ordnung ist, bleibt das CMD-Fenster geöffnet und der Befehl von Schritt 6 wird fortgesetzt. Schließen Sie einfach das Fenster (klicken Sie auf 'x') und schließen Sie MySQl im Task-Manager.
Löschen Sie die Datei mit den SQL-Befehlen und starten Sie MySQL erneut. Das Passwort muss jetzt geändert werden.
5.0 http://dev.mysql.com/doc/refman/5.0/de/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/de/resetting-permissions.html
... einfach die Version im Link ändern (5.5, 5.6, 5.7)
System:
Vorgehensweise:
Öffnen Sie zwei Shell-Sitzungen, und melden Sie sich als Linux-Root-Benutzer und als Nicht-Root-Benutzer mit Zugriff auf den Befehl mysql
an.
Stoppen Sie in Ihrer Root-Sitzung den normalen mysqld-Listener und starten Sie einen Listener, der die Kennwortauthentifizierung umgeht ( Hinweis: Dies ist ein erhebliches Sicherheitsrisiko wie jeder, der Zugriff auf den Befehl mysql
hat Greifen Sie ohne Passwort auf Ihre Datenbanken zu. Möglicherweise möchten Sie aktive Shell-Sitzungen schließen und/oder den Shell-Zugriff deaktivieren, bevor Sie dies tun.
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
Melden Sie sich in Ihrer Nicht-Root-Sitzung bei MySQL an und legen Sie das MySQL-Root-Kennwort fest:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Beenden Sie in Ihrer Root-Sitzung die kennwortlose Instanz von mysqld und stellen Sie den normalen mysqld-Listener für den Dienst wieder her:
# kill %1
# systemctl start mysqld
Testen Sie in Ihrer Nicht-Root-Sitzung das neue Root-Passwort, das Sie oben konfiguriert haben:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Die hier bereitgestellten Antworten schienen für mich nicht zu funktionieren, der Trick stellte sich heraus: ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
(vollständige Antwort hier: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )