Selamat Datang

Salam buat agan-agan semua... blog ini tercipta hanya sebuah media untuk kita saling belajar, berbagi, dan saling memberi informasi khususnya di dalam bidang Informatika.

Dari mulai newbie hingga yang master sekalipun boleh bergabung paling tidak berikan saran terbaik bagi semua. Perlu di ketahui, ini hanyalah catatan kecil milik insan tuhan yg ingin belajar.

Ilmu cukup diukur hanya dengan 3 jengkal saja : Pertama adalah sifat sok teu, congkak, sombong, (maklumlah). Kedua Tawadhu (low profile), santai dan bijaksana. Ketiga adalah sadar bahwa kita sebenarnya tidak mengetahui apa-apa tanpa-NYA - Always Newbie

Tampilkan postingan dengan label Database. Tampilkan semua postingan
Tampilkan postingan dengan label Database. Tampilkan semua postingan

Rabu, 13 April 2016

Reset Password root MySQL

User root merupakan superuser yang memiliki hak akses paling tinggi dalam sistem manajemen user MySQL. Jika user ‘biasa’ mengalami masalah, user rootdapat 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.

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 tabelmysql ini menyimpan tentang user dan hak aksesnya, maka disebut juga denganGrant 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 menghentikanMySQL 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 (menggunakanmysqld), 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
Menjalankan MySQL Server dengan opsi skip-grant-tablesUntuk 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
Masuk sebagai root dengan opsi skip-grant-tablesSegera 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 tabeluser pada database mysql.
Setelah perintah tersebut dijalankan, untuk merefresh tabel user, jalankan query:
FLUSH PRIVILEGES;
Perintah FLUSH PRIVILEGES digunakan untuk membuat MySQL Servermengupdate 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 menjalankansebuah 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 programnotepad 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
File reset_password di folder bin MySQLSelanjutnya, hentikan MySQL Server jika masih berjalan. Lalu jalankan kembaliMySQL 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
Menjalankan MySQL Server dengan opsi init-fileMySQL 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
Masuk sebagai root dengan opsi init-fileSebagai langkah terakhir, hentikan MySQL Server dan hapus filereset_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.

Populer Post