Ekoran keluaran MySQL 8.0 baru-baru ini, pengguna telah menghadapi kesukaran untuk mengakses phpMyAdmin. Isu ini berpunca daripada percanggahan kaedah pengesahan antara phpMyAdmin dan pelayan. Untuk menyelesaikan masalah ini, ikuti langkah berikut:
Mula-mula, log masuk ke konsol MySQL anda sebagai pengguna root menggunakan arahan yang sesuai:
mysql -u root -pPASSWORD
Setelah log masuk, tukar Pengesahan Pasangkan pada mysql_native_password dengan melaksanakan pertanyaan berikut:
ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Apabila bekerja dalam persekitaran berlabuh, pertimbangkan untuk menggunakan ini arahan:
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
Jika menggunakan imej docker mysql/mysql-server, ingat bahawa penyelesaian ini adalah untuk persekitaran pembangunan sahaja.
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 mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';" docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest
Untuk menukar pemalam pengesahan secara kekal, nyahtandakan baris berikut dalam fail /etc/my.cnf anda:
default_authentication_plugin=mysql_native_password
Walau bagaimanapun, gunakan kaedah ini dengan berhati-hati.
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 exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';" docker stop mysql; docker start mysql docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Pastikan sebut harga disertakan seperti yang ditunjukkan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Pengesahan phpMyAdmin dengan MySQL 8.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!