Access denied for user debian-sys-maint
Ketika melakukan upgrade mysql atau mariadb pada debian-based linux, tiba-tiba pesan error tersebut muncul
neo@thematrix:~$ sudo service mysql restart * Stopping MySQL database server mysqld [fail] * Starting MySQL database server mysqld [ OK ] /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Hal ini dapat terjadi ketika update script mariadb melakukan reconfigure pada file konfigurasi. Reconfigure ini menyebabkan password dari user debian-sys-maint menjadi berubah sehingga menimbulkan pesan access denied. User debian-sys-maint adalah user yang digunakan oleh debian untuk melakukan maintain terhadap basis data mysql. Untuk menghilangkan pesan error, maka password debian-sys-maint di basis data harus diubah.
cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = n4aSHUP04s1J32X5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] user = debian-sys-maint password = n4aSHUP04s1J32X5 socket = /var/run/mysqld/mysqld.sock basedir = /usr
Pada file debian.cnf di atas terlihat bahwa ada field password. Field inilah yang berubah valuenya ketika upgrade ke database dilakukan. Yang perlu dilakukan untuk menghilangkan pesan error adalah mengupdate password pada user debian-sys-maint menjadi seperti di atas.
mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'n4aSHUP04s1J32X5'; FLUSH PRIVILEGES; sudo service mysql restart
Ada kemungkinan ketika upgrade mysql atau mariadb kembali dilakukan, hal ini dapat terjadi kembali. Jadi pastikan langkah di atas dicatat dengan baik.