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 , habe aber kein Verzeichnis directadmin in local.
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 , habe aber kein Verzeichnis directadmin in local.
Antworten:
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. Jetzt lautet der Feldname 'authentication_string'.
Beenden Sie den abgesicherten MySQL-Modus und starten Sie den MySQL-Dienst wie folgt:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
mit dem neuen Passwort verwenden.
mysql -u root
. Es zeigt FehlerAccess denied
Sie können das Hash-Passwort nicht anzeigen. 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 gesamte Befehl)
Dies ist ein fortlaufender Befehl, bis der Vorgang abgeschlossen ist. Öffnen Sie daher ein anderes Shell- / Terminalfenster 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_secure_installation
und root kooperierte nicht mehr. Was macht die authentication_string
Einstellung?
mysqladmin -u root -p shutdown
mit dem neuen Passwort dannsudo service mysql start
MySQL 5.7 und höher speichert root in der MySQL-Protokolldatei.
Bitte versuchen Sie dies:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
enthielt jedoch stattdessen eine Warnung, dass das Root-Passwort leer sei - so rettete diese Art meinen Tag :)
Eine Sache, die mich bei einer Neuinstallation von mySQL auslöste und mich fragte, warum ich das Standardkennwort nicht zum Laufen bringen konnte und warum selbst die Rücksetzmethoden nicht funktionierten. Nun stellt sich heraus, dass unter Ubuntu 18 die neueste Version des MySQL-Servers standardmäßig überhaupt keine Kennwortauthentifizierung für den Root-Benutzer verwendet. Das bedeutet also, dass es egal ist, auf was Sie es eingestellt haben, Sie können es nicht verwenden. 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 !!! Es wird den Zugriff verweigern, egal was Sie eingeben.
Stattdessen müssen Sie verwenden
sudo mysql
das wird ohne Passwort funktionieren. Sobald Sie in sind, müssen Sie eingeben
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
Sie können es nicht finden. Es wird in einer Datenbank gespeichert, auf die Sie mit dem Root-Passwort zugreifen müssen, und selbst wenn Sie irgendwie Zugriff erhalten haben, wird es mit einem One-Way-Hash gehasht. Sie können es zurücksetzen: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Befolgen Sie diese Schritte, um das Kennwort im Windows-System zurückzusetzen
Beenden Sie den MySQL-Dienst über den 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 unter mysql-init.txt
und platzieren Sie es in 'C' drive
.
Öffnen Sie die Eingabeaufforderung und fügen Sie Folgendes ein
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Ich habe den obigen Befehl SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
zu /root/m.txt hinzugefügt
Sofern der Paketmanager Sie nicht auffordert, das Root-Passwort während der Installation einzugeben, ist das Standard-Root-Passwort die leere Zeichenfolge. Geben Sie Folgendes ein, um eine Verbindung zum frisch installierten Server herzustellen:
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'. Stellen Sie nun eine Verbindung zum Server her:
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 , root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Bingo! Neu etwas interessantes machen
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 gespeichert /root/.my.cnf
. (und der cpanel-Dienst setzt es bei Änderungen zurück, sodass die anderen Antworten hier nicht helfen)
Sie können MySQL-Root-Passwort anzeigen, nun, ich habe es auf MySQL 5.5 versucht, also wissen Sie nicht, ob andere neue Versionen gut funktionieren oder nicht
nano ~/.my.cnf
Das hat bei mir funktioniert:
Geben Sie am Terminal Folgendes ein
$ sudo mysql -u root -p
Passwort eingeben: // Drücken Sie einfach die Eingabetaste
mysql>
Das Standardkennwort, das nach der sofortigen Installation des MySQL-Servers für mich funktioniert hat, lautet: mysql
Die Prozedur ändert sich abhängig von der Version von MySql. Befolgen Sie die Anweisungen genau wie für Ihre Version beschrieben:
TIPPS - Lesen Sie vor der Anweisungsseite Ihre Version von MySql *
In Schritt 5: Erstellen Sie anstelle von CMD eine Verknüpfung auf Ihrem Desktop, indem Sie CDM.exe aufrufen. 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
Sobald Sie den Befehl ausführen und alles in Ordnung ist, bleibt das CMD-Fenster geöffnet und der Befehl von Schritt 6 wird weiter ausgeführt. Schließen Sie einfach das Fenster (klicken Sie auf 'x') und erzwingen Sie das Schließen von 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/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... ändern Sie einfach die Version im Link (5.5, 5.6, 5.7)
Versuchen Sie in Ihrer .err-Datei "Hostname" im Datenordner, an dem MySQL arbeitet, nach einer Zeichenfolge zu suchen, 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 Schrägstrichbefehl 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 hier gegebenen 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/ )
System:
Verfahren:
Öffnen Sie zwei Shell-Sitzungen und melden Sie sich bei einer als Linux-Root-Benutzer und bei der anderen als Nicht-Root-Benutzer mit Zugriff auf den mysql
Befehl an.
Stoppen Sie in Ihrer Root-Sitzung den normalen mysqld-Listener und starten Sie einen Listener, der die Kennwortauthentifizierung umgeht ( Hinweis: Dies stellt ein erhebliches Sicherheitsrisiko dar, da jeder, der Zugriff auf den mysql
Befehl hat, ohne Kennwort auf Ihre Datenbanken zugreifen kann. Möglicherweise möchten Sie aktive Shell-Sitzungen schließen und / oder deaktivieren Sie den Shell-Zugriff, 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-Passwort 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 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>
Ich habe das anders gelöst, für manche mag das einfacher sein.
Ich habe es so gemacht, weil ich versucht habe, im abgesicherten Modus zu starten, aber keine Verbindung mit dem Fehler herstellen kann: FEHLER 2002 (HY000): Über den Socket '/var/run/mysqld/mysqld.sock' (2) kann keine Verbindung zum lokalen MySQL-Server hergestellt werden.
Was ich getan habe war, mich normal als root zu verbinden:
$ sudo mysql -u root
Dann habe ich einen neuen Superuser erstellt:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Dann logge dich als myuser ein
$ mysql -u myuser -p -h localhost
Der Versuch, das Passwort zu ändern, gab mir keine Fehler, tat aber nichts für mich, so dass ich den Root-Benutzer fallen ließ und neu erstellte
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
Der Root-Benutzer arbeitet jetzt mit dem neuen Passwort
Gehen Sie zu phpMyAdmin> config.inc.php> $ cfg ['Server'] [$ i] ['Passwort'] = '';
phpmyadmin
.