Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

phpMyAdmin no MySQL 8.0


Faça login no console MySQL com root do utilizador:
[email protected]:/# mysql -u root -pPASSWORD

e altere o Plugin de Autenticação com a senha lá:
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)

Você pode ler mais informações sobre o Preferred Authentication Plugin no MySQL 8.0 Reference Manual

https ://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

Está funcionando perfeitamente em um docker ambiente izado:
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

Então agora você pode fazer login no phpMyAdmin em http://localhost:8080 com root/PASSWORD

mysql/mysql-server

Se você estiver usando mysql/mysql-server imagem do docker

Mas lembre-se, é apenas uma solução 'rápida e suja' no ambiente de desenvolvimento. Não é aconselhável alterar o Plugin de autenticação preferencial do 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

Solução atualizada em 04/10/2018

Altere o plug-in de autenticação padrão do MySQL removendo o comentário de default_authentication_plugin=mysql_native_password configuração em /etc/my.cnf

use por sua conta e risco
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

Solução alternativa atualizada em 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

default_authentication_plugin

Solução atualizada em 13/09/2021

ALTER USER 'root'@'localhost' IDENTIFICADO COM mysql_native_password BY 'password';
  • exatamente com aspas *