GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So setzen Sie das MySQL-Root-Passwort zurück

In diesem Artikel zeige ich Ihnen, wie Sie das MySQL-Root-Passwort auf zwei verschiedene Arten zurücksetzen können. Außerdem funktionieren beide Methoden mit dem Oracle-freien MariaDB-Fork.

Warum?

Es gibt zwei Hauptgründe, warum man das Root-Passwort zurücksetzen müsste:

  • Sie haben dieses Passwort vergessen
  • Sie wissen nicht dieses Passwort

Es kann viele Gründe dafür geben, das Passwort nicht zu kennen:Sie haben das Passwort nie gekannt und der alte DBA ist weg; jemand hat sich aus Spaß oder böswilligen Gründen geändert; es ist 3 Uhr morgens, das System ist abgestürzt und der DBA ist im Urlaub in einem anderen Land usw.

Tatsache ist, dass Sie eines Morgens die Datenbank vollstopfen müssen und zu dieser Situation kommen:

Ich gehe davon aus, dass Sie einen Superuser haben (d. h. su oder sudo zu root) Zugriff auf das Betriebssystem. Mein Betriebssystem in diesem Tutorial ist Debian Linux.

Bei beiden Methoden müssen Sie den mysql-Dienst zuvor stoppen. Tun Sie dies mit (vergessen Sie nicht, bei Bedarf su/sudo zu verwenden):

# service mysql stop

Methode 1:

Erstellen Sie eine Datei mit dem SQL-Befehl, um ein neues Root-Passwort festzulegen, das wir beim Start von mysql verwenden werden. Sie können einen beliebigen Texteditor verwenden oder einfach Folgendes eingeben:

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';" > passreset.sql

Wenn Sie den Texteditor wählen, erstellen Sie eine Datei nur mit dem fettgedruckten Teil. Wählen Sie natürlich eine echte Passwort, leicht zu merken und schwer zu entdecken.

Und starten Sie es manuell mit dem Benutzer mysql ( -u mysql) und mit der zuvor erstellten Datei (–init-file:passreset.sql). Die vollständige Befehlszeile wäre:

# mysqld -u mysql --init-file=/var/lib/mysql/passreset.sql

Warten Sie bis die Meldung:mysqld:bereit für Verbindungen . Öffnen Sie dann eine andere Konsole, um Ihr neues Root-Passwort zu testen:

Methode 2:

In der Vergangenheit habe ich mehrmals im Internet gesehen, wie man das MySQL-Root-Passwort zurücksetzt. Beim ersten Versuch heute Morgen hat es bei mir nicht funktioniert, aber ich habe einen Workaround gefunden.

Wir werden diesen Schalter des mysqld-Befehls verwenden:

--skip-grant-tables    Start without grant tables. This gives all users FULL
                               ACCESS to all tables.

Dadurch hatte ich vollen Zugriff auf alle Tabellen. Das Verfahren besteht darin, eine Verbindung zu mysql herzustellen und den ALTER USER-Befehl auszuführen, den wir in der vorherigen Methode gesehen haben, aber ich habe eine Fehlermeldung erhalten, dass mysqld mit skip-grant-tables ausgeführt wird.

Die Problemumgehung besteht darin, mysqld mit dem Schalter skip-grant-tables auszuführen und den mysql-Benutzer zu verwenden. Die vollständige Befehlszeile lautet:

# mysqld -u mysql --skip-grant-tables

Und leeren Sie in einer anderen Konsole die Berechtigungen vor dem Update und leeren Sie dann die Berechtigungen erneut:

# mysql -u root
MariaDB (none) > flush privileges;
MariaDB (none) > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
MariaDB (none) > flush privileges;
MariaDB (none) > ^DBye

Fertig

Jetzt können Sie mysql stoppen und normal starten. In meinem Fall hat Strg-C nicht funktioniert, um es zu stoppen, ich muss den manuell gestarteten Prozess vorher beenden:

# killall mysqld
# service mysql start

Und das ist es, mit einer dieser Methoden gewinnen Sie die Kontrolle über Ihre MySQL oder MariaDB zurück.


Linux
  1. So setzen Sie Ihr MySQL-Root-Passwort unter CentOS 6 zurück

  2. So setzen Sie das Root-MySql-Passwort zurück

  3. Wie setzt man das Ubuntu-Passwort zurück?

  4. So setzen Sie das Root-Passwort MySQL Server zurück

  5. So setzen Sie das MySQL-Root-Passwort zurück

So setzen Sie das MySQL-Root-Benutzerpasswort unter Linux zurück

So setzen Sie das Root-Passwort in Fedora 35 zurück

So setzen Sie das Root-Passwort auf Debian 11 zurück

So ändern / setzen Sie das MySQL- oder MariaDB-Root-Passwort zurück

Wie setze ich das MySQL 8.0-Root-Passwort auf Centos 7.x zurück?

So setzen Sie das Root-Passwort in CentOS/RHEL 8 zurück