MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang boleh digunakan untuk penyimpanan data, pemprosesan data dan analisis data. Dalam proses menggunakan MySQL, kita mungkin menghadapi masalah terlupa kata laluan Jika masalah ini tidak ditangani tepat pada masanya, ia akan menyebabkan kesan yang tidak perlu kepada kerja dan data kita. Dalam artikel ini, saya akan memperkenalkan pembaca tentang cara menangani masalah jika anda terlupa kata laluan MySQL anda.
Pertama, kita perlu memahami cara kata laluan MySQL disimpan. MySQL menyimpan kata laluan sebagai rentetan cincang yang disulitkan Proses ini dicapai menggunakan fungsi penyulitan SHA1() dan rentetan rawak yang dipanggil Salt. Memandangkan proses penyulitan ini tidak dapat dipulihkan, kami mesti mengambil beberapa langkah khusus untuk memulihkan kata laluan MySQL.
Seterusnya, saya akan memperkenalkan kepada pembaca beberapa kaedah yang biasa digunakan untuk memulihkan kata laluan MySQL:
Kaedah 1: Gunakan pengguna root untuk menukar kata laluan
Jika anda mempunyai kebenaran root , Anda boleh menggunakan langkah berikut untuk menukar kata laluan:
1 Log masuk ke pelayan MySQL sebagai root
mysql -u root -p
2
3 .Masukkan baris arahan MySQL
4 Selepas memasukkan baris arahan mysql, gunakan arahan berikut untuk menukar 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 yang baharu kata laluan
Apabila menggunakan MySQL, pengguna root mempunyai keizinan tertinggi, jadi jika anda mengetahui kata laluan pengguna root, menukar kata laluan MySQL menjadi sangat mudah.
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 adalah 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
2 Cari fail data MySQL
MySQL menyimpan fail data secara lalai 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('new_password') WHERE User='root'; FLUSH PRIVILEGES; EOF killall mysqld sleep 5s /usr/sbin/mysqld --skip-networking &
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 kata laluan mysql terlupa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!