Maison >base de données >tutoriel mysql >Comment résoudre les problèmes d'authentification phpMyAdmin avec MySQL 8.0 ?

Comment résoudre les problèmes d'authentification phpMyAdmin avec MySQL 8.0 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-24 03:41:13217parcourir

How to Fix phpMyAdmin Authentication Issues with MySQL 8.0?

phpMyAdmin sur MySQL 8.0

Dans le sillage de la récente version de MySQL 8.0, les utilisateurs ont rencontré des difficultés pour accéder à phpMyAdmin. Ce problème provient d'une différence de méthode d'authentification entre phpMyAdmin et le serveur. Pour résoudre ce problème, suivez ces étapes :

Connectez-vous à la console MySQL

Tout d'abord, connectez-vous à votre console MySQL en tant qu'utilisateur root à l'aide de la commande appropriée :

mysql -u root -pPASSWORD

Modifier le plugin d'authentification

Une fois connecté, modifiez le plugin d'authentification en mysql_native_password en exécutant la requête suivante :

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

Environnement Dockerisé

Lorsque vous travaillez dans un environnement dockerisé, pensez à utiliser ces commandes :

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

mysql/mysql-server

Si vous utilisez mysql/mysql-server image docker, rappelez-vous que cette solution est destinée aux environnements de développement uniquement.

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

Décommentation dans /etc/my.cnf

Pour modifier définitivement le plugin d'authentification, décommentez la ligne suivante dans votre / Fichier etc/my.cnf :

default_authentication_plugin=mysql_native_password

Cependant, utilisez cette méthode avec prudence.

Mise à jour Solution de contournement (30/01/2019)

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

Solution mise à jour (13/09/2021)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Assurez-vous que les devis sont inclus comme indiqué.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn