Pengguna yang mengalami perilaku ini di versi MySQL/MariaDB yang lebih baru (mis. Debian Stretch, dll) harus menyadari bahwa di tabel mysql.user, ada kolom yang disebut 'plugin'. Jika plugin 'unix_socket' diaktifkan, maka root akan dapat masuk melalui baris perintah tanpa memerlukan kata sandi. Mekanisme masuk lainnya akan dinonaktifkan.
Untuk memeriksa apakah itu masalahnya:
SELECT host, user, password, plugin FROM mysql.user;
yang seharusnya mengembalikan sesuatu seperti ini (dengan unix_socket diaktifkan):
+-----------+------+--------------------------+-------------+
| host | user | password | plugin |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+
Untuk menonaktifkannya dan memerlukan root untuk menggunakan kata sandi:
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
Catatan: Seperti yang dicatat oleh @marioivangf (dalam komentar) di versi MySQL yang lebih baru (mis. 5.7.x), Anda mungkin perlu menyetel plugin ke 'mysql_native_password' (bukan kosong).
Kemudian mulai ulang:
service mysql restart
Masalah diperbaiki!:
[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Sumber:https://stackoverflow.com/a/44301734/3363571 Terima kasih banyak kepada @SakuraKinomoto (silakan pilih jawabannya jika menurut Anda ini berguna).