Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membetulkan kata laluan mysql jika saya terlupa

Bagaimana untuk membetulkan kata laluan mysql jika saya terlupa

WBOY
WBOYke hadapan
2023-06-02 15:22:212586semak imbas

Pertama, kita perlu memahami cara kata laluan MySQL disimpan. MySQL menyimpan kata laluan sebagai rentetan cincang yang disulitkan menggunakan fungsi penyulitan SHA1() dan rentetan rawak yang dipanggil Salt. Memandangkan proses penyulitan kata laluan MySQL tidak dapat dipulihkan, kami perlu melaksanakan beberapa langkah khusus untuk dapat memulihkannya.

Kaedah 1: Gunakan pengguna root untuk menukar kata laluan

Jika anda mempunyai kebenaran root, anda boleh menggunakan langkah berikut untuk menukar kata laluan:

1 ke pelayan MySQL sebagai root

mysql -u root -p

2 Masukkan kata laluan pengguna root

3 Masukkan baris arahan MySQL

4 memasuki baris arahan mysql, gunakan arahan berikut untuk mengubah suai kata laluan pengguna Root:

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

Sila gantikan "new_password" dengan kata laluan baharu yang anda ingin tetapkan, dan pastikan anda menambah koma bertitik di hujung baris arahan MySQL;

5 Keluar dari MySQL dan log masuk semula dengan kata laluan baharu

Apabila menggunakan MySQL, pengguna root mempunyai kuasa tertinggi, jadi jika anda mengetahui kata laluan pengguna root, ia menjadi sangat mudah untuk menukar kata laluan MySQL.

Kaedah 2: Tetapkan semula kata laluan MySQL

Jika anda tidak boleh menukar kata laluan melalui pengguna root, atau tidak mengetahui kata laluan root langsung, maka menetapkan semula kata laluan MySQL mungkin pilihan terbaik anda. Berikut ialah dua kaedah yang biasa digunakan untuk menetapkan semula kata laluan MySQL:

Kaedah 1: Gunakan skip-grant-tables untuk menetapkan semula kata laluan MySQL

Kaedah ini akan melangkau proses pengesahan pengguna MySQL, Dan membolehkan anda untuk log masuk ke MySQL tanpa memberikan kata laluan. Berikut ialah langkah khusus:

1 Hentikan perkhidmatan MySQL

sudo systemctl stop mysql

2. Jalankan arahan berikut untuk melangkau proses pengesahan pengguna MySQL:

sudo mysqld_safe --skip-grant-tables &

3 Log masuk ke pelayan MySQL sebagai root

mysql -u root

4 arahan untuk menukar kata laluan:

mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

Sila gantikan "new_password" dengan kata laluan baharu yang anda ingin tetapkan dan pastikan anda menambah koma bertitik di hujung baris arahan MySQL ;

5. Muat semula jadual mysql .user

mysql> FLUSH PRIVILEGES;

6. Keluar dari MySQL dan mulakan semula MySQL >7. Log masuk ke MySQL sekali lagi menggunakan kata laluan baharu

Kaedah 2: Gunakan skrip tetapan semula untuk menetapkan semula kata laluan MySQL sudo systemctl start mysql

Kaedah ini memerlukan anda menjalankan skrip sebagai root dan anda perlu mengetahui lokasi fail data MySQL. Berikut ialah langkah khusus:

1 Hentikan perkhidmatan MySQL

2. Cari fail data MySQL

Secara lalai, MySQL akan Fail datanya disimpan dalam direktori /var/lib/mysql. Lokasi sebenar fail data boleh didapati dengan melaksanakan arahan berikut: sudo systemctl stop mysql

3. Buat skrip tetapan semula

Sila gunakan arahan berikut untuk menyimpan kod berikut untuk resetmysql.sh Dalam fail: sudo find / -name "*.frm"

#!/bin/bash
/usr/sbin/mysqld --skip-grant-tables --skip-networking  &
sleep 5s

mysql -u root <<EOF
UPDATE mysql.user SET Password=PASSWORD(&#39;new_password&#39;) WHERE User=&#39;root&#39;;
FLUSH PRIVILEGES;
EOF

killall mysqld
sleep 5s
/usr/sbin/mysqld --skip-networking &

Sila gantikan "new_password" dengan kata laluan baharu yang anda ingin tetapkan.

4. Jalankan skrip untuk menetapkan semula kata laluan MySQL

Jalankan skrip tetapan semula dengan keistimewaan root menggunakan arahan berikut:

5. . Mulakan MySQL

sudo bash resetmysql.sh

6 Log masuk ke MySQL sekali lagi dengan kata laluan baharu

Pada ketika ini, pembaca sepatutnya sudah mengetahui dua kaedah berikut untuk menyelesaikannya. masalah terlupa kata laluan MySQL: Gunakan pengguna root Tukar kata laluan dan gunakan skrip tetapan kata laluan MySQL untuk menetapkan semula kata laluan. sudo systemctl start mysql

Atas ialah kandungan terperinci Bagaimana untuk membetulkan kata laluan mysql jika saya terlupa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam