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.