Cara reset password root MySQL

Musibah memang tidak bisa diduga atau untuk kasus saya karena memang lalai tidak mencatat apa password root dari MySQL di VPS. 2 tahun lalu sih jadi tersimpan di notepad yang entah dimana sekarang. Haha. 😛 Untungnya ada cara manual untuk mereset password root MySQL (tampaknya juga bisa diterapkan untuk MariaDB dan Percona Server juga). Jadi kalau anda sedang mengalami masalah yang sama silahkan diikuti.

Anda membutuhkan akses root ke servernya, dan sebaiknya seluruh service Linux yang menggunakan database MySQL ikut dimatikan agar tidak menambah masalah. Jangan lupa backup dulu untuk jaga – jaga. Pertama silahkan menghentikan layanan MySQL:

service mysql stop

Lanjutkan dengan perintah berikut:

mysqld_safe --skip-grant-tables &

Ini akan mengabaikan hak akses seluruh user yang ada di MySQL, jadi semuanya akan memiliki hak akses tertinggi (root). Karena itu sebaiknya seluruh program yang membutuhkan akses ke database (PHP, Apache, Nginx, dan lainnya) sebaiknya ikut dimatikan. Berbahaya soalnya.

Kemudian silahkan login ke MySQL dengan root:

mysql -u root

Semestinya tidak akan ditanyakan apa passwordnya dan akan muncul MySQL prompt menunggu perintah anda.

Selanjutnya untuk mereset password MySQL, jalankan secara berurutan (jangan dicopas semua, satu per satu dieksekusi alurnya):

USE mysql;
UPDATE user SET password=PASSWORD("KataSandiBaruSaya") WHERE User='root';
FLUSH privileges;
QUIT

Jangan lupa gantikan KataSandiBaruSaya dengan password yang anda inginkan, sebaiknya yang kuat (kombinasi angka dan karakter, tanda baca juga boleh) dan catat. Tidak lucu kalau lupa lagi. Hehe. 😀

Setelahnya restart layanan MySQL:

service mysql restart

Akhirnya coba anda login ke MySQL dengan user root dan kata sandi barunya:

mysql -u root -p

Selesai. 🙂

7 Comments

  1. terima kasih tutorialnya

    saya mau nanya setting mysql
    gimana agar database mysql bisa diakses
    melalui jaringan manapun
    terutama bisa diakses secara online

    terima kasih

    1. Oke mas. 🙂

      Langkah pertama silahkan edit konfigurasi MySQL:

      nano /etc/mysql/my.cnf

      Catatan, lokasinya bisa berbeda – beda tergantung bagaimana anda installnya dan menggunakan distro Linux apa.

      Kemudian cari bagian [mysqld], hilangkan simbol komentar (#) diawal kode dibawah dan modfikasi nilainya:

      bind-address        = 127.0.0.1    
      bind-address        = 192.168.1.221

      Bila tidak ada maka tambahkan sendiri. Yang pertama untuk localhost dan yang kedua adalah alamat IP server anda.

      Selanjutnya dalam MySQL berikan hak akses agar databasenya bisa diakses darimanapun:

      GRANT ALL PRIVILEGES ON *.* TO 'nama_user'@'%' IDENTIFIED BY 'kata_sandi' WITH GRANT OPTION;

      Dimana:

      • nama_user adalah username MySQL yang akan digunakan secara remote.
      • % maksudnya adalah wildcard, jadi semua alamat IP akan diperbolehkan.
      • kata_sandi tentu saja passwordnya.

      Setelah itu restart MySQL:

      service mysql restart

      Kalau anda akses jarak jauhnya masih pakai shell/command line pakai perintah berikut:

      mysql -u nama_user -h 192.168.1.221 -p

      Oh ya, cek aturan firewall anda jangan sampai port 3306 diblokir.

  2. terima kasih

    kok hanya bisa diakses jaringan local saja ya, mysqlnya?
    apa servernya cukup dikasih modem aja
    ataukah ada setting tertentu buat servernya
    atau alat lain

    terima kasih

    1. Waduh… ini stacknya apa ya mas? Windows? Terus ini dihosting dimana MySQLnya?

      Kalau saya menangkapnya ini anda mau hosting di rumah/kantor dan mau diakses dari luar/online ya? Kalau anda tidak punya alamat IP statis untuk servernya dari ISP ya coba cari setting Dynamic DNS mas.

  3. windows

    ya begitulah
    databasenya mau saya host dirumah
    trus aplikasinya diluar online
    biar klo mau kmana2 gak bingung

    btw ip statis & dns dinamis itu gimana dapatnya

    bisa dibuatkan tutorialnya di page sendiri?

    terima kasih

    1. Wah… saya tampung dulu ya mas.

      Mengenai jenis IP:

      • IP statis itu alamat IP dari ISP anda yang dedicated, jadi cuma anda sendiri yang menggunakan. Ini biaya sewanya cukup mahal. Seingat saya mencapai jutaan.
      • IP dinamis itu sebaliknya, coba mas reset modem dan cek Public IPnya. Besar kemungkinan akan berganti.

      Nah… saya bicarakan DDNS agar suatu nama domain tetap mengarah ke alamat IP internet anda walaupun berubah – ubah. Tapi sekilas begini masL

      1. Install dulu MySQLnya.
      2. Dalam modem anda sudah aktif Port Forwardingnya. MySQL di 3306.
      3. Kemudian buat akun dalam layanan DDNS (Dynamic DNS).
      4. Isikan data DDNS anda dalam modemnya.

      Konfigurasi seperti ini pas kuliah dulu mencobanya. Jadi lupa – lupa ingat mas detailnya.

      Saya anjurkan anda hostingnya benar – benar online saja mas, pakai shared hosting atau VPS sekalian. Kecuali anda ingin Windows servernya.

Tinggalkan Balasan ke ranran Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *