GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Ulang Kata Sandi Pengguna Root MySQL Di Linux

Apakah Anda lupa kata sandi pengguna root MySQL Anda? Jangan khawatir! Panduan ini memandu Anda melalui langkah-langkah untuk mereset kata sandi pengguna root MySQL di sistem operasi Linux. Langkah-langkah yang diberikan di bawah ini juga dapat berfungsi untuk mereset kata sandi root MariaDB.

Kami telah memposting panduan untuk mengatur ulang kata sandi pengguna root (administratif) di MySQL versi yang lebih lama, yaitu MySQL 5.7. Tetapi, metode itu tidak berfungsi dengan versi MySQL 8 yang baru. Jika Anda ingin mereset kata sandi root di MySQL 8, ikuti salah satu dari dua solusi yang diberikan di bawah ini.

Setel Ulang Kata Sandi Pengguna Root MySQL Di Linux

Seperti yang telah saya sebutkan, kita dapat mereset kata sandi root MySQL dengan dua cara.

  • Cara umum,
  •  Menggunakan init_file variabel sistem.

1. Cara umum untuk mereset kata sandi root MySQL

Metode ini akan bekerja terlepas dari sistem operasi yang Anda gunakan. Saya memperingatkan Anda bahwa ini kurang aman cara, karena kita akan memulai server MySQL dengan --skip-grant-tables pilihan. Ini memberi siapa pun akses ke server akses tak terbatas ke semua basis data .

Pertama, hentikan layanan MySQL menggunakan perintah:

$ sudo systemctl stop mysql

Anda dapat memverifikasi apakah MySQL benar-benar dihentikan 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 Sat 2021-05-29 11:53:08 UTC; 8s ago
     Process: 560 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
     Process: 666 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
    Main PID: 666 (code=exited, status=0/SUCCESS)
      Status: "Server shutdown complete"
 May 29 10:08:33 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server…
 May 29 10:08:37 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
 May 29 11:53:07 ubuntu2004.localdomain systemd[1]: Stopping MySQL Community Server…
 May 29 11:53:08 ubuntu2004.localdomain systemd[1]: mysql.service: Succeeded.
 May 29 11:53:08 ubuntu2004.localdomain systemd[1]: Stopped MySQL Community Server.

Nah, layanan MySQL tidak berjalan.

Sekarang, restart server MySQL tanpa pemeriksaan izin dengan menjalankan perintah berikut:

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

Di sini, --skip-grant-tables opsi memungkinkan Anda untuk terhubung ke server database mysql tanpa kata sandi dan dengan semua hak istimewa. --skip-networking opsi digunakan untuk mencegah klien lain terhubung ke server database. Dan, ampersand (& ) simbol digunakan untuk menjalankan perintah di latar belakang, sehingga Anda dapat mengetikkan perintah lain yang diberikan pada langkah selanjutnya. Harap diingat bahwa perintah di atas berbahaya dan server database Anda menjadi tidak aman dan rentan terhadap ancaman keamanan. Anda harus menjalankan perintah ini hanya untuk waktu yang singkat untuk menyetel ulang sandi.

Anda mungkin melihat kesalahan berikut:

2021-05-29T12:00:19.991826Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2021-05-29T12:00:19.996942Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

Jika Anda melihat kesalahan ini, buat direktori yang hilang (mis. /var/run/mysqld ) dan atur izin yang tepat seperti di bawah ini.

$ sudo mkdir -p /var/run/mysqld
$ sudo chown -R mysql:mysql /var/run/mysqld

Sekarang coba lagi untuk memulai server mysql tanpa kata sandi dan dengan hak akses root:

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

Selanjutnya, sambungkan ke server mysql menggunakan perintah:

$ mysql

Anda akan diarahkan ke prompt shell mysql.

 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 7
 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.

Karena kami masuk tanpa memuat tabel hibah (karena kami menggunakan --skip-grant-tables option), kami tidak dapat menggunakan ALTER USER perintah untuk mengatur ulang kata sandi. Jadi mari kita memuat tabel hibah menggunakan perintah:

mysql> FLUSH PRIVILEGES;

Sekarang, jalankan perintah berikut untuk memperbarui kata sandi pengguna root mysql:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]#@!';

Pada perintah di atas, ganti [email protected]#@! dengan kata sandi Anda sendiri. Harap dicatat bahwa jika telah mengaktifkan Validate Password komponen, Anda harus menggunakan kata sandi yang kuat.

Terakhir, keluar dari prompt mysql:

mysql> exit

Terakhir, matikan server database yang berjalan yang Anda mulai sebelumnya dengan --skip-grant-tables pilihan. Untuk melakukannya, jalankan:

$ sudo mysqladmin -u root -p shutdown

Anda akan diminta untuk memasukkan sudo kata sandi diikuti oleh root MySQL kata sandi pengguna yang Anda tetapkan di langkah sebelumnya.

[sudo] password for ostechnix: 
Enter password: 
2021-05-29T12:09:38.425737Z mysqld_safe mysqld from pid file /var/lib/mysql/ubuntu2004.localdomain.pid ended
[1]+  Done                    sudo mysqld_safe --skip-grant-tables --skip-networking

Jika perintah di atas tidak bekerja, cari .pid file yang berisi ID proses server. File PID biasanya akan tersedia di /var/lib/mysql/ atau /var/run/mysqld/ atau /usr/local/mysql/data/ direktori tergantung pada distribusi Anda, nama host, dan konfigurasi. Umumnya, nama file memiliki ekstensi .pid dan dimulai dengan mysqld atau nama host sistem Anda.

Dalam kasus saya, ini adalah "/var/lib/mysql/ubuntuserver.pid" .

Jadi, saya menghentikan instance server database dengan perintah:

$ sudo kill `/var/lib/mysql/ubuntuserver.pid`

Harap gunakan centang kembali untuk menyebutkan jalur file.

Kami juga dapat menemukan pid MySQL menggunakan ps dan grep perintah seperti di bawah ini:

$ ps ax | grep mysql

Contoh keluaran:

1930 pts/0 S 0:00 sudo mysqld_safe --skip-grant-tables --skip-networking
1931 pts/0 S 0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables --skip-networking
2091 pts/0 Sl 0:28 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --skip-networking --log-error=/var/log/mysql/error.log --pid-file=ubuntuserver.pid

Bunuh secara manual seperti di bawah ini:

$ sudo kill <PID>

Atau, matikan semua layanan MySQL:

$ sudo  killall mysql

Sekarang, mulai layanan MySQL secara normal menggunakan perintah:

$ sudo systemctl start mysql

Sekarang, masuk ke server MySQL dengan kata sandi baru:

$ mysql -u root -p

Contoh keluaran:

2. Setel ulang kata sandi root MySQL dengan file kata sandi

Cara lain untuk mereset kata sandi root mysql adalah dengan menggunakan init_file variabel sistem.

Hentikan layanan MySQL:

$ sudo systemctl stop mysql

Buat file teks, misalnya ostechnix.txt :

$ vi ostechnix.txt

Tambahkan baris berikut di dalamnya:

ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]#@!';

Ganti [email protected]#@! dengan kata sandi Anda sendiri di baris di atas. Jika Anda telah mengaktifkan Validate Password plugin, Anda harus menentukan kata sandi yang kuat. Simpan dan tutup file.

Sekarang, mulai server MySQL dengan init_file variabel sistem yang menunjuk ke ostechnix.txt berkas:

$ sudo mysqld --init-file=/home/sk/ostechnix.txt &

Perintah ini akan mengeksekusi isi ostechnix.txt file dan perbarui [email protected] kata sandi akun dengan kata sandi baru yang disebutkan dalam ostechnix.txt file dan akhirnya mulai server mysql.

Sekarang hentikan dan mulai ulang server mysql secara normal:

$ sudo systemctl stop mysql
$ sudo systemctl start mysql

Terakhir, hapus file kata sandi yaitu ostechnix.txt .

$ rm /home/sk/ostechnix.txt

Sekarang Anda dapat masuk ke server mysql dengan kata sandi baru menggunakan perintah:

$ mysql -u root -p

Kami juga memposting metode yang sedikit berbeda untuk mereset kata sandi root MySQL. Lihat panduan berikut untuk detailnya:

>> How To Reset Root Password In MySQL 8 On Ubuntu Linux

Kesimpulan

Dalam panduan ini, kami telah mempelajari dua cara berbeda untuk mereset kata sandi pengguna root MySQL yang terlupakan di sistem operasi Linux. Jika Anda kehilangan kata sandi pengguna akun administratif database, Anda dapat dengan mudah mengatur ulang dalam beberapa menit.


Linux
  1. Cara Mengatur Ulang Kata Sandi Root MySQL Anda di CentOS 6

  2. Cara mereset kata sandi root MySql

  3. Bagaimana cara mereset kata sandi root MySQL?

  1. Cara mereset kata sandi root MySql

  2. Cara Mengatur Ulang Kata Sandi Root MySQL Atau MariaDB

  3. Reset Password Root di Rocky Linux - Bagaimana Caranya?

  1. Cara Reset Kata Sandi Root Server MySQL

  2. Cara Mengatur Ulang Kata Sandi Root MySQL

  3. Setel ulang kata sandi root MySQL