Promo Code : DSI33220

Cara Reset Password MySQL

 24 October 2017    Development     Idcolo

MySQL adalah sistem manajemen database open-source, yang biasa dipasang sebagai bagian dari stack LEMP (Linux, Nginx, MySQL / MariaDB, PHP / Python / Perl) yang populer. MySQL menggunakan database relasional dan SQL (Structured Query Language) untuk mengelola datanya.

Melihat Versi MySQl
$ mysql --version

Berikut versi dari MySQL

output
mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper
Menghentikan Server Database
$ sudo systemctl stop mysql
Restart Server Database Tanpa Izin Memeriksa

Jika Anda menjalankan MySQL tanpa memuat informasi tentang hak istimewa pengguna, ini akan memungkinkan Anda untuk mengakses baris perintah basis data dengan hak akses root tanpa memberikan kata sandi. Ini akan memungkinkan Anda untuk mendapatkan akses ke database tanpa menyadarinya.

Untuk melakukan ini, Anda perlu menghentikan database untuk memuat tabel hibah, yang menyimpan informasi hak istimewa pengguna. Karena ini adalah sedikit risiko keamanan, Anda juga harus melewatkan jaringan juga untuk mencegah klien lain terhubung.

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Ampersand pada akhir perintah ini akan membuat proses ini berjalan di latar belakang sehingga Anda dapat terus menggunakan terminal Anda.

Sekarang Anda bisa terhubung ke database sebagai root user, yang seharusnya tidak meminta password.

$ mysql -u root

Anda akan segera melihat prompt shell basis data sebagai gantinya.

MySQL prompt
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Sekarang setelah Anda memiliki akses root, Anda bisa mengganti kata sandinya.

Mengubah Password Root

Salah satu cara sederhana untuk mengganti password root untuk versi MySQL modern adalah dengan menggunakan perintah ALTER USER. Namun, perintah ini tidak akan bekerja sekarang karena tabel hibah tidak dimuat.

$ sudo systemctl stop mysql
Mengubah Password Root

Salah satu cara sederhana untuk mengganti password root untuk versi MySQL modern adalah dengan menggunakan perintah ALTER USER. Namun, perintah ini tidak akan bekerja sekarang karena tabel hibah tidak dimuat.

Mari beritahu server database untuk memuat ulang tabel hibah dengan mengeluarkan perintah FLUSH PRIVILEGES.

mysql> FLUSH PRIVILEGES;

Sekarang kita sebenarnya bisa mengganti password root.

Untuk MySQL 5.7.6 dan yang lebih baru, gunakan perintah berikut.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Untuk MySQL 5.7.5 dan yang lebih tua, gunakan:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

Pastikan mengganti new_password dengan kata kunci baru pilihan Anda.

Note: If the ALTER USER command doesn't work, it's usually indicative of a bigger problem. However, you can try UPDATE ... SET to reset the root password instead. mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost'; Remember to reload the grant tables after this.

Dalam kedua kasus tersebut, Anda harus melihat konfirmasi bahwa perintah telah berhasil dijalankan.

output
Query OK, 0 rows affected (0.00 sec)

Kata sandi telah diubah, jadi sekarang Anda bisa menghentikan contoh manual dari server database dan memulai ulang seperti sebelumnya.

Restart Database Server Normally

Pertama, hentikan instance dari database server yang Anda mulai secara manual pada Langkah 3. Perintah ini mencari PID, atau process ID, proses MySQL atau MariaDB dan mengirim SIGTERM untuk memberitahukannya agar bisa keluar dengan lancar setelah melakukan operasi pembersihan. Anda bisa belajar lebih banyak dalam tutorial pengelolaan proses Linux ini.

$ sudo kill `cat /var/run/mysqld/mysqld.pid`

Kemudian, restart layanan menggunakan systemctl.

$ sudo systemctl start mysql

Sekarang Anda dapat mengonfirmasi bahwa kata sandi baru telah diterapkan dengan benar dengan menjalankan:

$ mysql -u root -p