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

mysql (mariadb) FEHLER 1698 (28000):Zugriff verweigert für Benutzer 'root'@'localhost'

Dazu müssen Sie das password.so zurücksetzen

sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;

Die Idee hinter dem neuen Setup ist, dass Sie überhaupt keine Passwörter verwenden sollten. Einzelheiten finden Sie unter UNIX_SOCKET-Authentifizierungs-Plugin.

Besonders relevant ist der Inhalt von /usr/share/doc/mariadb-server-10.0/README.Debian.gz unter Ubuntu 16.04:

Bei Neuinstallationen wird kein Root-Passwort gesetzt und kein debian-sys-maint-Benutzer mehr erstellt. Stattdessen wird das MariaDB-Root-Konto so eingestellt, dass es über den Unix-Socket authentifiziert wird, z. Jeder mysqld-Aufruf durch root oder über sudo lässt den Benutzer die mysqld-Eingabeaufforderung sehen.

Sie dürfen niemals den mysql-Benutzer "root" löschen. Obwohl kein Passwort gesetzt ist, stellt das Plugin unix_auth sicher, dass es nur lokal als rootuser ausgeführt werden kann.

Die Anmeldeinformationen in /etc/mysql/debian.cnf geben den Benutzer an, der von den Init-Skripten verwendet wird, um den Server zu stoppen und eine Logrotation durchzuführen. Dies war früher der Benutzer debian-sys-maint, der nicht mehr als root verwendet wird und direkt ausgeführt werden kann.

Wenn Sie also dieses Plug-in für root deaktivieren und ein Passwort festlegen, bricht der tägliche Cron-Job ab, da er davon ausgeht, dass er sich als root ohne Passwort, aber mit dem Plug-in anmeldet.

Später heißt es:

Skripte sollten ausgeführt werden, wenn ein Benutzer über die erforderlichen Genehmigungen verfügt und über unix_socket identifiziert wurde.

Es sieht also so aus, als sollten Passwörter nicht länger von Anwendungen verwendet werden.


Ich habe das Problem nach der Antwort aus diesem Beitrag gelöst:

Root-Passwort für MySQL (MariaDB) kann nicht zurückgesetzt werden

Man muss das Plugin-Feld von mysql.user für alle Roots auf einen leeren String ändern.


Linux
  1. Steuerung des Zugriffs auf rootless Podman für Benutzer

  2. Fehler Zugriff verweigert PROCESS-Privileg erforderlich [MySQL]

  3. Zugriff verweigert für Benutzer 'root'@'localhost' (mit Passwort:Ja) nach Zurücksetzen des Passworts LINUX

  4. ERROR 1045 (28000):Zugriff verweigert für Benutzer 'root'@'localhost' (mit Passwort:YES)

  5. Was ist das Standard-Root-Passwort für MySQL 5.7

Ändern Sie die Authentifizierungsmethode für den MySQL-Root-Benutzer in Ubuntu

[Gelöst] Zugriff auf Speicherdatei nicht möglich, Berechtigung verweigert Fehler in KVM Libvirt

Spickzettel für MySQL-Datenbankbefehle für Linux

Fehlerbehebung:MySQL/MariaDB-Fehler Nr. 1044 und Nr. 1045 Zugriff für Benutzer verweigert

Wie melde ich mich als Root in Mysql an?

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