Los usuarios que encuentren este comportamiento en las versiones más recientes de MySQL/MariaDB (por ejemplo, Debian Stretch, etc.) deben tener en cuenta que en la tabla mysql.user hay una columna llamada 'complemento'. Si el complemento 'unix_socket' está habilitado, la raíz podrá iniciar sesión a través de la línea de comandos sin requerir una contraseña. Se desactivarán otros mecanismos de inicio de sesión.
Para comprobar si ese es el caso:
SELECT host, user, password, plugin FROM mysql.user;
que debería devolver algo como esto (con unix_socket habilitado):
+-----------+------+--------------------------+-------------+
| host | user | password | plugin |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+
Para deshabilitar eso y requerir que root use una contraseña:
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
Luego reinicie:
service mysql restart
¡Problema solucionado!:
[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Fuente:https://stackoverflow.com/a/44301734/3363571 Muchas gracias a @SakuraKinomoto (suba y vote su respuesta si la encuentra útil).