MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang sering digunakan untuk membina aplikasi web dan mengurus data. Dalam MySQL, pengguna root adalah pengguna yang mempunyai keistimewaan tertinggi dan biasanya digunakan untuk menguruskan keseluruhan pangkalan data. Tetapi dalam beberapa kes, kami mungkin terlupa kata laluan pengguna root. Artikel ini akan memperkenalkan beberapa cara biasa untuk menetapkan semula kata laluan pengguna root MySQL.
Jika anda terlupa kata laluan pengguna root, kaedah pertama yang perlu anda cuba ialah menggunakan mysqld_safe untuk memulakan perkhidmatan MySQL. Kaedah ini memulakan MySQL tanpa memerlukan kata laluan dan membolehkan anda menukar kata laluan pengguna root. Langkah-langkahnya adalah seperti berikut:
Pertama, hentikan perkhidmatan MySQL.
$ sudo systemctl stop mysql
Kemudian, gunakan mysqld_safe untuk memulakan perkhidmatan MySQL dan nyatakan --skip-grant-tables.
$ sudo mysqld_safe --skip-grant-tables &
--skip-grant-tables parameter akan menyebabkan MySQL mengabaikan senarai kawalan akses, yang bermaksud sesiapa sahaja boleh menyambung ke pelayan MySQL dan mempunyai kebenaran root. Oleh sebab itu, anda harus memastikan bahawa hanya pengguna yang dipercayai mempunyai akses kepada pelayan.
Seterusnya, sambung ke pelayan MySQL dalam tetingkap terminal lain.
$ mysql -u root
Pada gesaan MySQL, jalankan arahan berikut untuk menukar kata laluan pengguna root.
mysql> KEMASKINI mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
Dalam arahan ini, ganti new_password dengan kata laluan baharu anda.
Akhir sekali, keluar dari MySQL dan mulakan semula perkhidmatan MySQL.
mysql> KEISTIMEWAAN FLUSH;
mysql> quit;
$ sudo systemctl start mysql
Kini anda boleh log masuk sebagai pengguna root dengan kata laluan baharu!
Jika anda tidak boleh memulakan MySQL menggunakan mysqld_safe, anda juga boleh cuba menggunakan skrip mysql_secure_installation untuk menetapkan semula kata laluan pengguna root. Skrip ini boleh membuat beberapa tetapan untuk MySQL dengan cepat, termasuk menetapkan semula kata laluan pengguna root, memadamkan pengguna tanpa nama, melumpuhkan log masuk jauh, dsb.
Pertama, jalankan arahan berikut untuk memasang skrip mysql_secure_installation.
$ sudo apt-get update
$ sudo apt-get install mysql-server
Selepas pemasangan selesai, anda boleh menggunakan arahan berikut untuk menjalankan skrip mysql_secure_installation.
$ sudo mysql_secure_installation
Semasa proses berjalan, anda perlu menjawab beberapa soalan, termasuk menetapkan kata laluan pengguna root, memadamkan pengguna tanpa nama, dsb. Apabila menetapkan kata laluan, walaupun anda terlupa kata laluan asal pengguna root, anda boleh membiarkannya kosong dan memilih untuk menetapkan kata laluan baharu. Setelah semuanya disediakan, anda akan dapat log masuk sebagai root menggunakan kata laluan baharu anda.
Jika kedua-dua kaedah di atas tidak berfungsi, percubaan terakhir ialah memulakan MySQL menggunakan skip-grant- parameter jadual. Walaupun kaedah ini boleh memulakan MySQL, ia meninggalkan pangkalan data dalam keadaan terdedah dan tidak boleh digunakan dalam persekitaran pengeluaran.
Pertama, cari fail konfigurasi MySQL my.cnf atau my.ini. Fail harus mengandungi baris berikut:
[mysqld]
skip-grant-tables
Jika fail tidak wujud, anda boleh mencipta fail baharu dan menambah dua baris di atas untuk memfailkan dan menyimpannya sebagai my.cnf atau my.ini.
Kemudian, gunakan arahan berikut untuk memulakan semula MySQL.
$ sudo systemctl restart mysql
Selepas dimulakan semula, anda akan dapat log masuk ke MySQL sebagai pengguna root tanpa memasukkan kata laluan. Pada prompt MySQL, masukkan arahan berikut untuk menukar kata laluan pengguna root.
mysql> KEMASKINI mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
Ganti new_password dengan kata laluan baharu anda, kemudian keluar dari MySQL dan mulakan semula perkhidmatan MySQL .
mysql> KEISTIMEWAAN FLUSH;
mysql> quit;
$ sudo systemctl restart mysql
Kini anda boleh log masuk sebagai pengguna root dengan kata laluan baharu!
Ringkasan
Melupakan kata laluan pengguna root MySQL adalah masalah biasa, tetapi terdapat beberapa cara untuk menyelesaikannya. Dalam kebanyakan kes, tetapan semula kata laluan adalah mudah menggunakan skrip mysqld_safe atau mysql_secure_installation. Jika kaedah ini tidak berfungsi, memulakan MySQL dengan parameter skip-grant-tables mungkin merupakan pilihan terakhir, tetapi tidak disyorkan dalam persekitaran pengeluaran.
Atas ialah kandungan terperinci mysql terlupa kata laluan root. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!