Gli utenti che riscontrano questo comportamento nelle versioni più recenti di MySQL/MariaDB (ad es. Debian Stretch, ecc.) dovrebbero essere consapevoli del fatto che nella tabella mysql.user è presente una colonna chiamata 'plugin'. Se il plugin 'unix_socket' è abilitato, root sarà in grado di accedere tramite riga di comando senza richiedere una password. Altri meccanismi di accesso verranno disabilitati.
Per verificare se è così:
SELECT host, user, password, plugin FROM mysql.user;
che dovrebbe restituire qualcosa del genere (con unix_socket abilitato):
+-----------+------+--------------------------+-------------+
| host | user | password | plugin |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+
Per disabilitarlo e richiedere a root di utilizzare una password:
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
Nota: Come notato da @marioivangf (in un commento) nelle versioni più recenti di MySQL (ad es. 5.7.x) potrebbe essere necessario impostare il plug-in su 'mysql_native_password' (anziché vuoto).
Quindi riavvia:
service mysql restart
Problema risolto!:
[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Fonte:https://stackoverflow.com/a/44301734/3363571 Grazie mille a @SakuraKinomoto (per favore, vai su vota la sua risposta se lo trovi utile).