Sebagai web administrator, ada kalanya kita lupa baik sengaja maupun tidak disengaja atas password root MySQL yang dulu pernah didaftarkan ke dalam sistem operasi yang kita pakai. Meskipun sudah berusaha disimpan ke dalam password manager, file .txt, dan semacamnya, masih saja tidak ketemu. Atau terkadang sudah ketemu, tetapi begitu dimasukkan ternyata password-nya tidak cocok.
Tidak perlu panik. Selama kita masih punya akses SSH, masalah tersebut bisa diatasi dengan mudah. Secara teknis, masalah tersebut bisa dilakukan dengan merestart mysql kemudian masuk dalam mode –skip-grant-tables. Mode ini memang disediakan oleh mysql untuk mengatasi masalah urgent semacam ini. Namun, perlu diingat bahwa mode ini termasuk mode ‘insecure’ dan disarankan hanya untuk diaktifkan sementara. Begitu password sudah diubah, maka mode ini perlu dinonaktifkan.
Pada tutorial kali ini, saya akan coba menjelaskan langkah demi langkah cara mereset password root MySQL pada sistem operasi Linux, terutama untuk distro-distro yang banyak dipakai sebagai server OS seperti CentOS, Fedora, Debian, dan Ubuntu.
- Masuk ke dalam server dengan menggunakan akses SSH. Anda bisa masuk menggunakan akun root atau akun user yang lain, tetapi untuk menjalankan perintah-perintah berikut harus punya hak akses sebagai user root.
- Setelah berhasil masuk ke SSH, hal pertama yang dilakukan adalah dengan menghentikan status mysql dengan perintah sbb:
- CentOS dan Fedora ⇒ service mysqld stop
- Debian dan Ubuntu ⇒ service mysql stop
- Kemudian masukkan perintah untuk merestart mysql dengan opsi –skip-grant-tables. Perintah yang perlu dimasukkan yaitu mysqld_safe –skip-grant-tables &. Perintah tersebut digunakan untuk masuk ke dalam status safe mode mysql dengan mengabaikan tabel hak akses.
- Langkah berikutnya yaitu masuk mysql, cukup menggunakan perintah mysql dan kita sudah tidak perlu lagi memasukkan password. Dan perlu diingat kalau pada mode normal, perintah untuk masuk ke mysql adalah mysql -u root -p.
- Pada prompt mysql>, ketikkan perintah update password untuk akun root.
UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
- Jangan lupa untuk mengganti bagian new-password dengan kombinasi password baru Anda. Pastikan password tersebut sudah di-backup atau disimpan agar tidak lupa lagi di kemudian hari.
- Masih pada mode prompt mysql>, ketikkan perintah sebagai berikut:
FLUSH PRIVILEGES; exit;
Perintah tersebut digunakan untuk me-reload server untuk membaca ulang tabel hak akses, sekaligus untuk menutup aplikasi mysql (exit).
- Langkah selanjutnya yaitu memyetop service mysql dengan perintah shut down: mysql -u root -p shutdown
- Kemudian matikan service mysql dengan perintah shut down:
- CentOS dan Fedora ⇒ service mysqld start
- Debian dan Ubuntu ⇒ service mysql start
- Sampai di sini reset password sudah berhasil dilakukan. Untuk menguji apakah password sudah berfungsi dengan baik, bisa coba login mysql dengan perintah mysql -u root -p kemudian masukkan passsword baru.