Tutorial Belajar MySQL Part 38: 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 user, password 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':

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 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.


Pada tutorial MySQL kali ini kita telah membahas cara mereset dan mengembalikan password MySQL jika ternyata user root lupa password untuk login. Tutorial ini juga sebagai sesi terakhir dalam pembahasan user dan hak askes MySQL, untuk tutorial MySQL selanjutnya saya akan membahas query-query lanjutan untuk keperluan-keperluan khusus dalam MySQL.

35 Comments

  1. vendor
    06 May 14
  2. teguh
    24 May 14
    • Andre
      24 May 14
  3. Micho
    29 Aug 14
  4. Syaifuddin
    21 Nov 14
  5. kickymaulana
    11 Feb 15
  6. imhid
    04 Apr 15
    • Andre
      05 Apr 15
  7. zorro
    01 May 15
  8. Raymond
    21 Jul 15
    • Andre
      22 Jul 15
      • Raymond
        22 Jul 15
        • Andre
          23 Jul 15
  9. achmed
    12 Sep 15
    • Andre
      12 Sep 15
  10. taupik nurur rahman
    22 Oct 15
    • Andre
      23 Oct 15
  11. Cici Wirachmat
    01 Mar 16
    • Andre
      01 Mar 16
  12. Inferno Mistake
    16 Apr 16
    • Andre
      17 Apr 16
  13. pras
    09 Jun 16
  14. tonyputra
    13 Dec 16
    • Andre
      14 Dec 16
  15. fahson
    25 Dec 16
    • fahson
      25 Dec 16
  16. fahson
    25 Dec 16
    • Andre
      25 Dec 16
      • fahson
        26 Dec 16
  17. Ikhsan
    20 Dec 17
  18. Nursalim
    13 Aug 18
  19. poerwanto
    26 Sep 18
  20. irfal nafiyndi
    27 Sep 18
  21. desta
    22 Oct 19

Add Comment

Leave a Reply to zorro Cancel reply