Naviguer dans la compatibilité de phpMyAdmin avec MySQL 8.0
Dans le domaine de la gestion de bases de données, phpMyAdmin reste un outil recherché. Cependant, à mesure que MySQL progresse vers sa dernière version, 8.0, les utilisateurs peuvent rencontrer des obstacles de connectivité avec phpMyAdmin.
Erreur rencontrée :
Lorsqu'ils tentent d'accéder à phpMyAdmin, les utilisateurs sont souvent confrontés l'erreur suivante :
#2054 - The server requested authentication method unknown to the client
Cette erreur provient des mesures de sécurité améliorées utilisées dans MySQL 8.0, qui introduisent un mécanisme de hachage de mot de passe plus puissant.
Solution :
Pour résoudre ce problème, vous devez modifier la méthode d'authentification spécifiée pour l'utilisateur root dans l'instance MySQL. :
root@9532f0da1a2a:/# mysql -u root -pPASSWORD
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
En définissant le plugin d'authentification sur ' mysql_native_password,' vous activez la compatibilité avec phpMyAdmin.
Docker Environment Solution :
Pour ceux qui utilisent des conteneurs 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
Considérations supplémentaires :
mysql/mysql-server docker image :
Pour cette image Docker, décommentez simplement la ligne suivante dans /etc/my.cnf :
# default-authentication-plugin=mysql_native_password
Alternativement, les commandes de solution de contournement suivantes peuvent être utilisées :
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 :
Solution mise à jour (13/09/2021) :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
N.B :Assurez-vous d'inclure les citations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!