Gudang Ilmu: Cara Mereset Password root (Lupa Password root MySQL)

Saturday 8 July 2023

Cara Mereset Password root (Lupa 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 dengan opsi 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 database mysql 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 tab Procesess, 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.

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 root MySQL

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.

No comments:

Post a Comment

terimakasih telah mengunjungi blog saya.