Connectez-vous à la console MySQL avec Racine utilisateur :
root@9532f0da1a2a:/# mysql -u root -pPASSWORD
et modifiez le plugin d'authentification avec le mot de passe qui s'y trouve :
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)
Vous pouvez lire plus d'informations sur le plugin Preferred Authentication dans le manuel de référence de MySQL 8.0.
https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password
Il fonctionne parfaitement dans un docker l'environnement :
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
Vous pouvez donc maintenant vous connecter à phpMyAdmin sur http://localhost:8080 avec Root / PASSWORD
mysql/mysql-server
Si vous utilisez mysql/mysql-server image docker
Mais n'oubliez pas qu'il ne s'agit que d'une solution "rapide et sale" dans l'environnement de développement. Il n'est pas judicieux de modifier le Plugin d'authentification préférée MySQL .
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
Solution actualisée au 10/04/2018
Changez le plugin d'authentification par défaut de MySQL en décommentant le fichier default_authentication_plugin=mysql_native_password
à l'intérieur /etc/my.cnf
à utiliser à vos risques et périls
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
Solution de contournement mise à jour au 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
plugin_authentification_par défaut
1 votes
Quelle version de PHP utilisez-vous ? Je parie qu'il s'agit d'un problème au niveau du pilote, car phpMyAdmin utilise la version de PHP la plus récente.
mysqli
.0 votes
PHP version 7.0.27-0