Benutzer, die auf dieses Verhalten in neueren Versionen von MySQL/MariaDB (z. B. Debian Stretch usw.) stoßen, sollten sich darüber im Klaren sein, dass es in der mysql.user-Tabelle eine Spalte mit dem Namen „plugin“ gibt. Wenn das Plug-in „unix_socket“ aktiviert ist, kann sich root über die Befehlszeile anmelden, ohne dass ein Passwort erforderlich ist. Andere Anmeldemechanismen werden deaktiviert.
So überprüfen Sie, ob dies der Fall ist:
SELECT host, user, password, plugin FROM mysql.user;
was so etwas zurückgeben sollte (mit aktiviertem unix_socket):
+-----------+------+--------------------------+-------------+
| host | user | password | plugin |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+
Um dies zu deaktivieren und von root zu verlangen, ein Passwort zu verwenden:
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
Hinweis: Wie von @marioivangf (in einem Kommentar) angemerkt, müssen Sie in neueren Versionen von MySQL (z. B. 5.7.x) das Plugin möglicherweise auf „mysql_native_password“ (anstatt leer) setzen.
Dann neu starten:
service mysql restart
Problem behoben!:
[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Quelle:https://stackoverflow.com/a/44301734/3363571 Ein großes Dankeschön an @SakuraKinomoto (bitte stimmen Sie für seine Antwort ab, wenn Sie dies nützlich finden).