Brugere, der støder på denne adfærd i nyere versioner af MySQL/MariaDB (f.eks. Debian Stretch osv.), bør være opmærksomme på, at der i tabellen mysql.user er en kolonne kaldet 'plugin'. Hvis 'unix_socket'-plugin'et er aktiveret, vil root være i stand til at logge på via kommandolinjen uden at kræve en adgangskode. Andre login-mekanismer vil blive deaktiveret.
For at kontrollere, om det er tilfældet:
SELECT host, user, password, plugin FROM mysql.user;
som skulle returnere noget som dette (med unix_socket aktiveret):
+-----------+------+--------------------------+-------------+
| host | user | password | plugin |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+
For at deaktivere det og kræve, at root bruger en adgangskode:
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
Bemærk: Som bemærket af @marioivangf (i en kommentar) i nyere versioner af MySQL (f.eks. 5.7.x) skal du muligvis indstille pluginnet til 'mysql_native_password' (i stedet for tomt).
Genstart derefter:
service mysql restart
Problem løst!:
[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Kilde:https://stackoverflow.com/a/44301734/3363571 Stor tak til @SakuraKinomoto (gå venligst op og stem på hans svar, hvis du finder dette nyttigt).