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.
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:
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:
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.
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.
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
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.
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.
terimakasih.
tetap semangat buat apdet.
:)
LUARRRRR BIASA
Terimakasih teguh, semoga tutorial MySQL di duniailkom ini bisa bermanfaat..
Gan koq saya gak berhasil ya untuk jalanin 2 langkah di atas, muncul "ERROR 1045", mohon solusi'y ya Gan ?
Heheheeh…
Gi seru ngikutin Tutorial'y neh, klo ad stack gini penasaran.
-Thank's-
tERIMA KASIH INFONYA. bERMANFAAT UNTUK saya.
akhirnya selesai juga baca semua artikel HTML, CSS, dan MYSQL, sementara ini PHP belum kelar, tinggal baca baca ulang.
Banyak-banyak terimakasih atas ilmu yang diberikan gan…
Sangat-sangat bermanfaat sekali dari tutorial 1 s/d 38, bahasanya mudah dipahami.
Ditunggu updatenya gan untuk tutorial mysql lanjutan dan artikel mysql…..
Syukurlah tutorialnya bisa dipahami dengan mudah.. untuk updatenya ditunggu saja ya :)
mantap gan mudah dipahami.. ane kasih bintang 5 buat agan ini.
Makasih gan :)
gan
ane udah ikut caranya tapi kok ga bisa ya
ini list percobaan sesuai artikel di atas di command promt
gan kok ane ga bisa ya sesuai yang di atas
ini list yg ane tulis di cmd sesuai dengan kode agan
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.
C:\Users\USER>d
'd' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER>
C:\Users\USER>
C:\Users\USER> "D:\MySQL\bin\reset_password.sql".
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER>mysqld --skip-grant-tables
'mysqld' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER>mysqld --skip-grant-tables
'mysqld' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER>
C:\Users\USER>
C:\Users\USER>mysqld --skip-grant-tables
'mysqld' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER> "D:\MySQL\bin\reset_password.sql".
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER>MySQL\bin\reset_password.sql".
The system cannot find the path specified.
C:\Users\USER>C:\mysql\bin
'C:\mysql\bin' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER> "C:\MySQL\bin\reset_password.sql"
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER>"D:\MySQL\bin\reset_password.sql"
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER> "D:\MySQL\bin\reset_password.sql"
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER>C:\mysql\bin>mysqld --init-file=D:\MySQL\bin\reset_password.sql
'C:\mysql\bin' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER>C:\MySQL\bin>mysql -uroot -p123456
'C:\MySQL\bin' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER>"mysqld --init-file=D:\MySQL\bin\reset_password.sql"
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER>mysqld --init-file=D:\MySQL\bin\reset_password.sql
'mysqld' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\USER>"mysqld --init-file=D:\MySQL\bin\reset_password.sql"
The filename, directory name or volume label syntax is incorrect.
C:\Users\USER>
C:\Users\USER>
tapi kok ga bisa
minta pencerahannya donk gan
Kalau melihat dari error, sepertinya agan tidak mengakses command promt MySQL dari foldernya y? Karena dari baris pertama, CMD windows sudah 'komplain' karena tidak mengerti perintah mysql. Seharusnya C:\Users\USER> akan berubah menjadi D:\MySQL 5.6\bin>mysqld (tergantung dimana folder MySQL diletakkan).
Untuk penjelasan lebih lanjut cara mengakses MySQL Server dan MySQL Client dari cmd Windows, bisa mempelajari tutorial berikut: Cara Menjalankan MySQL Server dan Cara Menjalankan MySQL Client.
oo iya gan
makasi ya gan,akhirnya ane berhasil reset passwordnya
membantu banget
Sama2 gan, syukurlah sudah bisa jalan :)
gan sebelum kita deface atau ddos web orang berarti harus punya akses root dulu yah….terus gimana cara root windowsnya nih? bingung hehehe
Hati2 gan, nanti kena UU ITE… hehe…
gan setelah ane ketik "mysqld_safe –skip-grant-tables &"enter lalu saya coba masuk menggunakan mysql -u root,, tapi ga bisa masuk gan yang keluar seperti ini
"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)"
ada yang bisa ngsih solusi
Agan pakai linux bukan y? saya juga kurang paham dimana errornya, tapi setelah coba browsing2 kemungkinan besar server mysql belum berjalan. Bisa dipastikan lagi kalau MySQL servernya sudah running.
Berselancar di Dunia maya , gak sia-sia kalo dapat ilmu kayak gini, Trims, Admin
Sama2 pak cici, semoga bermanfaat :)
Tulisan Mysql di task nya ga ada di saya bagaimana cara agar ada mysql
Apakah mysql servernya sudah bisa diakses gan? seharusnya muncul, tapi mungkin di versi terbaru sudah g muncul lagi. Ini g jadi masalah selama MySQL nya tetap bisa diakses.
kalo mau password nya di kosongin gmna caranya min..??
lanjutkan gan artikelnya sangat bagus mudah dimengerti dan sangat bermanfaat saya sangat senang membaca di websitenya bang andre:)
Siip, terimakasih untuk dukungannya…
FYI…
Saya menggunakan versi 5.7, ada sedikit perbedaan untuk masuk dengan Opsi skip-grant-tables.
1. matikan terlebih dahulu MySQL Service-nya seperti yang telah dijelaskan di atas.
2. buka file my.ini kalian. kemudian cari " [mysqld] " (tanpa tanda petik dua) (bisa gunakan Ctrl+f untuk melakukan pencarian kata). kemudian tambahkan " skip-grant-tables " (tanpa petik dua) dibawah [mysqld]. kemudian save dan exit dari file.
3. buka cmd dan jalankan MySQL Service-nya seperti biasa. //mysqld –defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" // lokasi my.ini saya disana
4. buka cmd baru lagi dan coba masuk tanpa pasword // mysql -uroot
5. katakan alhamdulillah :)
*dengan menambahkan "skip-grant-table" pada file my.ini, kita bisa masuk dengan user root tanpa password. namun tetap bisa masuk menggunakan password. jika kita ingin agar tidak bisa masuk tanpa password dgn user root lagi. kita tinggal hapus "skip-grant-table" pada file my.ini tadi.
kemudian bisa lanjutkan tutorial di atas bagaimana cara mereset passwordnya.
terimakasih.
salam semangat belajar.
sumber : http://stackoverflow.com/questions/1708409/how-to-start-mysql-with-skip-grant-tables
kalo di versi 5.7 kolom password nya bernama (authentication_string)
by : SA
jadi syntaxnya: UPDATE mysql.user SET authentication_string = PASSWORD('fahson') WHERE user='root';
Kalo untuk reset password mengganakan init-file, syntaxnya seperti ini :
> mysqld –defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" –init-file="C:\Program Files\MySQL\MySQL Server 5.7\bin\rese_password.sql"
syntax untuk init-file diletakan setelah syntax –defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" tidk boleh terbalik my.ini dulu baru init-file.(heheh ga tau juga sih, tpi saya coba hasilnya error jika dibalik).
Terimakasih tambahannya gan.. semoga bisa bermanfaat bagi teman2 yang lain :)
Saya juga belum sempat update tutorialnya ke MySQL versi terbaru, hehe..
Iya gan, terimakasih kembali…
banyak bgt ilmu yg saya dapatkan disini…
semangat berbagi gan… :)
Kalo pakai maria db cara skip grant file nya gimana ya?
saya coba mysql -u root ada error sepeti ini:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Thanks info sangat membantu
makasih mas…. info membantu sekali. aku terapkan dan berhasil… makasih sekali….nwun.
makasih mas , keren ilmunya .
Terima kasih banyak gan,
mohon izin copas -> pastinya sumber akan ditampilkan.