Menavigasi Keserasian phpMyAdmin dengan MySQL 8.0
Dalam bidang pengurusan pangkalan data, phpMyAdmin kekal sebagai alat yang dicari. Walau bagaimanapun, apabila MySQL berkembang ke versi terbaharunya, 8.0, pengguna mungkin menghadapi halangan sambungan dengan phpMyAdmin.
Ralat Ditemui:
Apabila cuba mengakses phpMyAdmin, pengguna sering menghadapi ralat berikut:
#2054 - The server requested authentication method unknown to the client
Ralat ini berpunca daripada langkah keselamatan yang dipertingkatkan digunakan dalam MySQL 8.0, yang memperkenalkan mekanisme pencincangan kata laluan yang lebih kukuh.
Penyelesaian:
Untuk menyelesaikan isu ini, anda mesti mengubah kaedah pengesahan yang ditentukan untuk pengguna akar dalam contoh MySQL:
root@9532f0da1a2a:/# mysql -u root -pPASSWORD
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Dengan menetapkan pemalam pengesahan kepada ' mysql_native_password,' anda mendayakan keserasian dengan phpMyAdmin.
Penyelesaian Persekitaran Docker:
Bagi mereka yang menggunakan bekas Docker:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest docker exec -it mysql bash mysql -u root -pPASSWORD ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD'; exit exit docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest
Pertimbangan Tambahan:
docker mysql/mysql-server imej:
Untuk imej docker ini, cuma nyahkomen baris berikut dalam /etc/my.cnf:
# default-authentication-plugin=mysql_native_password
Sebagai alternatif, arahan penyelesaian berikut boleh digunakan:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf docker stop mysql; docker start mysql docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest
default_authentication_plugin:
Penyelesaian dikemas kini (09/13/2021):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
N.B: Pastikan anda memasukkan petikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Ralat 'Kaedah Pengesahan Tidak Diketahui Pelanggan' Semasa Menyambungkan phpMyAdmin ke MySQL 8.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!