Apakah Anda lupa root
database MySQL Anda? kata sandi pengguna? Jangan khawatir! Panduan langkah demi langkah ini menjelaskan cara mereset kata sandi root di MySQL 8 pada sistem operasi Ubuntu 20.04.
Catatan: Seperti yang mungkin sudah Anda ketahui, pengguna root MySQL menggunakan auth_socket
plugin untuk mengautentikasi dengan server MySQL di sistem Ubuntu yang menjalankan MySQL 5.7 dan versi yang lebih baru. Jadi Anda bisa login ke server MySQL sebagai root
pengguna dengan sudo mysql
perintah selama Anda mengetahui sudo
pengguna sistem Anda kata sandi. Dalam hal ini, tidak perlu mengubah root
MySQL kata sandi. Jika Anda sudah mengubah metode otentikasi untuk root MySQL pengguna ke caching_sha2_password
atau mysql_native_password
, ikuti langkah-langkah di bawah ini untuk mereset root
kata sandi database MySQL.
Reset Kata Sandi Root Di MySQL 8 Di Ubuntu Linux
1. Pertama, hentikan layanan MySQL menggunakan perintah:
$ sudo systemctl stop mysql
Ini akan menghentikan layanan MySQL jika sedang berjalan. Anda dapat memverifikasi status layanan MySQL dengan perintah:
$ sudo systemctl status mysql
Contoh keluaran:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-05-31 11:01:15 UTC; 1min 15s ago Process: 1446 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS) Main PID: 1446 (code=exited, status=0/SUCCESS) Status: "Server shutdown complete" May 31 07:57:50 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 07:57:51 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server. May 31 11:01:14 ubuntu2004.localdomain systemd[1]: Stopping MySQL Community Server… May 31 11:01:15 ubuntu2004.localdomain systemd[1]: mysql.service: Succeeded. May 31 11:01:15 ubuntu2004.localdomain systemd[1]: Stopped MySQL Community Server.
2. Selanjutnya, jalankan server MySQL tanpa pemeriksaan izin. Untuk melakukannya, jalankan:
$ sudo systemctl edit mysql
Ini akan membuka mysql
systemd
file konfigurasi editor teks default Anda. Dalam kasus saya, ini adalah nano
editor.
Tambahkan baris berikut di dalamnya:
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Setelah menambahkan baris di atas, tekan CTRL+O
dan ENTER
untuk menyimpan file lalu tekan CTRL+X
untuk menutupnya.
Di sini, --skip-grant-tables
opsi memungkinkan Anda untuk terhubung ke server database MySQL tanpa kata sandi dan dengan semua hak istimewa. Ini juga akan menonaktifkan pernyataan pengelolaan akun seperti ALTER USER
dan SET PASSWORD
. Dan --skip-networking
opsi digunakan untuk mencegah klien lain terhubung ke server database. Karena menonaktifkan semua koneksi jarak jauh, tidak ada klien jarak jauh yang dapat mengakses server database sampai Anda me-restart server database secara normal.
3. Muat ulang systemd
konfigurasi menggunakan perintah:
$ sudo systemctl daemon-reload
4. Mulai layanan MySQL:
$ sudo systemctl start mysql
Ini akan memulai server MySQL dengan --skip-grant-table
s dan --skip-networking
pilihan. Anda dapat memverifikasinya dengan memeriksa status layanan MySQL:
$ sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mysql.service.d └─override.conf Active: active (running) since Mon 2021-05-31 11:39:18 UTC; 1min 23s ago Process: 1882 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 1905 (mysqld) Status: "Server is operational" Tasks: 36 (limit: 2280) Memory: 331.0M CGroup: /system.slice/mysql.service └─1905 /usr/sbin/mysqld --skip-grant-tables --skip-networking May 31 11:39:16 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 11:39:18 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
5. Sekarang, sambungkan ke server MySQL sebagai root
pengguna tanpa kata sandi:
$ sudo mysql -u root
Anda akan langsung masuk ke dalam prompt shell MySQL.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
6. Kami masuk ke server database tanpa memuat tabel hibah (karena kami menggunakan --skip-grant-tables
pilihan). Jadi kami tidak dapat menggunakan ALTER USER
perintah yang diperlukan untuk mereset kata sandi. Untuk memuat tabel hibah, jalankan perintah berikut dari prompt shell MySQL:
mysql> FLUSH PRIVILEGES;
7. Selanjutnya, jalankan salah satu dari perintah berikut untuk mereset root
MySQL kata sandi.
Jika Anda menggunakan caching_sha2_password
plugin, jalankan:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
Jika Anda menggunakan mysql_native_password
plugin, jalankan ini sebagai gantinya:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';
Ganti Password123#@!
dengan milik Anda.
Setelah mengubah root
MySQL kata sandi, keluar dari prompt shell MySQL:
mysql> exit
8. Kembalikan systemd
. yang dimodifikasi konfigurasi kembali ke pengaturan normal menggunakan perintah:
$ sudo systemctl revert mysql
Ini akan menghapus semua file yang dimodifikasi.
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
9. Muat ulang systemd
konfigurasi untuk menerapkan perubahan:
$ sudo systemctl daemon-reload
10. Terakhir, restart server MySQL secara normal:
$ sudo systemctl restart mysql
11. Sekarang Anda seharusnya dapat terhubung ke database MySQL sebagai root
pengguna dengan new password
menggunakan perintah:
$ mysql -u root -p
Masukkan root
kata sandi untuk mengakses prompt shell MySQL:
mysql>
Ada juga cara lain untuk mengubah root
MySQL kata sandi di Linux. Ini sedikit berbeda dari metode ini. Jika Anda tertarik untuk mengetahuinya, lihat tautan berikut:
>> How To Reset MySQL Root User Password In Linux
Kesimpulan
Seperti yang Anda lihat, menyetel ulang kata sandi root MySQL itu mudah! Jika Anda mengikuti langkah-langkah di atas dengan hati-hati, Anda dapat memulihkan kata sandi root database MySQL Anda dalam beberapa menit. Jangan sampai hilang lagi. Hafalkan atau simpan sandi Anda di tempat yang aman.