Cara Mereset Password root MySQL

Lupa password root MySQL? Pada tutorial MySQL ini kita akan membahas tentang cara mereset password user root, ketika administrator MySQL Lupa password root tersebut.

User root merupakan superuser yang memiliki hak akses paling tinggi dalam sistem manajemen user MySQL. Jika user ‘biasa’ mengalami masalah, user root dapat mereset kembali password user tersebut dari sistemnya. Namun jika yang lupa password adalah user root itu sendiri, user lain tidak dapat meresetnya.
Terdapat beberapa cara untuk mengembalikan password user root. Pada tutorial MySQL kali ini saya akan menjelaskan 2 cara diantaranya. Cara pertama yaitu dengan menjalankan MySQL denganopsi skip-grant-tables dan cara kedua, menjalankan MySQL dengan opsi init-file. Kedua opsi ini mengharuskan user dapat mengakses folder sistem tempat file MySQL berada.
Dalam tutorial ini saya akan mencoba mereset password user root MySQL dengan menggunakan sistem Operasi Windows 7. Untuk sistem operasi windows lainnya, cara yang dibutuhkan kurang lebih akan mirip.
Dalam menjalankan langkah-langkah yang diperlukan untuk mereset user root ini, kita akan sering mengakses MySQL Server, terutama menghentikan dan menjalankan kembali MySQL Server, anda bisa mempelajari cara menjalankan dan menghentikan MySQL Server pada tutorial Menjalankan MySQL Server.

Reset Password root MySQL dengan Opsi skip-grant-tables

Cara pertama yang akan saya gunakan untuk mereset user root MySQL adalah dengan menjalankan MySQL Server tanpa sistem manajemen user sama sekali. Dengan cara ini, user root dapat masuk tanpa password.
MySQL menyimpan hak akses dan password user di dalam database mysql. Database ini menyimpan data-data tentang setingan MySQL, termasuk data tentang userpassword dan hak aksesnya di dalam tabel mysql. Karena tabel mysql ini menyimpan tentang user dan hak aksesnya, maka disebut juga dengan Grant Tabel.
Cara yang akan kita lakukan adalah menjalankan MySQL Server tanpa menggunakan databasemysql ini. Yang berarti MySQL Server tidak dapat memeriksa setiap user, dan setiap user yang log in akan memiliki akses root!.
Langkah pertama untuk mereset password user root adalah menghentikan MySQL Server apabila masih berjalan. Seperti yang kita pelajari pada Menjalankan MySQL Server, terdapat beberapa cara untuk menghentikan MySQL Server.
Cara paling cepat mematikan MySQL Server adalah dari menu task manager, pilih tab Procesess, cari mysqld.exe, klik kanan dan pilih menu end process.
Cara Menghentikan MySQL Server dari Task Manager
Selanjutnya kita akan menjalankan kembali MySQL Server (menggunakan mysqld), namun dengan perintah tambahan skip-grant-tables. Buka lokasi file mysqld melalui cmd, lalu jalankan perintah :
mysqld --skip-grant-tables
Berikut adalah tampilan cmd windows:
Menjalankan MySQL Server dengan opsi skip-grant-tables
Untuk memeriksa apakah MySQL Server telah berjalan, dapat dilihat dari task manager, pilih tabProcesess, dan jika ada mysqld.exe, berarti MySQL Server telah berjalan.
Saat ini MySQL Server telah berjalan dengan opsi skip-grant-tables, sehingga kita dapat masuk sebagai root tanpa password:
Masuk sebagai root dengan opsi skip-grant-tables
Segera setelah masuk sebagi root, langsung jalankan perintah untuk membuat password untuk user root. Karena kita masuk dengan opsi skip-grant-tables, maka kita tidak bisa menjalankan cara membuat password seperti tutorial Cara Merubah dan Menghapus Password User MySQL, namun harus secara manual mengupdate tabel user pada database mysql.
Berikut query yang digunakan untuk update password root:
UPDATE mysql.user SET Password = PASSWORD('password_baru') WHERE User = 'root';
Perintah tersebut adalah query UPDATE yang biasa kita gunakan untuk mengupdate sebuah record atau baris, namun yang diupdate kali ini adalah tabel user pada database mysql.
Setelah perintah tersebut dijalankan, untuk merefresh tabel user, jalankan query:
FLUSH PRIVILEGES;
Perintah FLUSH PRIVILEGES digunakan untuk membuat MySQL Server mengupdate hak akses di tabel user. Lalu keluarlah dari MySQL.
Berikut query yang saya gunakan untuk mereset password root menjadi ‘123456’:
1
2
3
4
5
6
7
8
9
mysql> UPDATE mysql.user SET Password = PASSWORD('123456') WHERE User = 'root';
Query OK, 1 row affected (0.20 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.42 sec)
 
mysql> exit;
Bye
Setelah keluar dari MySQL Client, hentikan MySQL Server dari task manager dan jalankan MySQL Server seperti biasa.
Karena opsi ini mengizinkan user root masuk tanpa password, sebaiknya anda memutuskan jaringan server terlebih dahulu agar tidak ada user lain yang masuk selama kita mereset password root. Bahkan selama opsi skip-grant-option, setiap user yang masuk akan memiliki hak akses sebagai root, walaupun user tersebut tidak terdaftar sebelumnya.

Reset Password root MySQL dengan Opsi init-file

Cara kedua untuk mereset password user root MySQL adalah dengan menggunakan opsi init-file.
Opsi init-file digunakan untuk memerintahkan MySQL Server menjalankan sebuah file pada saat Server pertama kali dijalankan. Dan kita akan memanfaatkan fitur ini untuk mereset password rootMySQL
Sebagai langkah pertama, kita akan membuat sebuah file text yang berisi perintah query MySQL untuk mereset password. Isi dari file text tersebut adalah:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password_baru');
Perintah ini sama dengan query untuk mereset password user pada tutorial Cara Merubah dan Menghapus Password User MySQL, namun kali ini user yang direset adalah root, dan ‘password_baru’ adalah password root yang diinginkan.
Sebagai contoh, saya akan mereset password root menjadi ‘123456’, sehingga perintahnya adalah:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
Savelah file ini sebagai ‘reset_password.sql’. Anda bisa menggunakan program notepad bawaan windows untuk menulisnya, namun pastikan akhiran dari file adalah ‘.sql’. Savelah file ini di lokasi yang bisa diakses MySQL, untuk contoh kali ini saya akan meletakkannya di dalam folder bin MySQL.
File reset_password di folder bin MySQL
Selanjutnya, hentikan MySQL Server jika masih berjalan. Lalu jalankan kembali MySQL Server, namun kali ini dengan opsi init-file=’lokasi_file_reset_password.sql’.
Karena saya menyimpan file reset_password di drive D:\MySQL\bin, maka lokasi_file_reset_password.sql adalah di “D:\MySQL\bin\reset_password.sql”. Berikut perintah untuk menjalankan MySQL Server dengan opsi init-file:
mysqld --init-file=D:\MySQL\bin\reset_password.sql
Menjalankan MySQL Server dengan opsi init-file
MySQL Server akan menjalankan file ‘reset_password.sql’ tersebut dan mereset password user root menjadi ‘123456’.
Untuk mencoba password root yang baru saja di reset, masuklah sebagai user root dengan password ‘123456’.
Jika anda berhasil masuk sebagai root, berarti reset password berhasil dijalankan.
Masuk sebagai root dengan opsi init-file
Sebagai langkah terakhir, hentikan MySQL Server dan hapus file reset_password.sql.
Sumber : http://www.duniailkom.com/cara-mereset-password-root-mysql-lupa-password-root-mysql/


EmoticonEmoticon