root@9532f0da1a2a:/# MysqL -u root -pPASSWORD
@H_404_4@
并使用其中的密码更改身份验证插件:
MysqL> ALTER USER root IDENTIFIED WITH MysqL_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)
@H_404_4@
您可以在《 MysqL 8.0参考手册》上阅读有关首选身份验证插件的更多信息。
https://dev.mysql.com/doc/refman/8.0/zh-CN/upgrading-from-previous- series.html#upgrade-caching- sha2-password
它在 化环境中完美运行:
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
@H_404_4@
因此,您现在可以使用root / PASSWORD 登录http:// localhost:8080上的PHPMyAdmin。
如果您正在使用mysql / mysql-server docker image
但是请记住,这只是开发环境中的“快速而肮脏的”解决方案。 更改MySQL Preferred Authentication Plugin是不明智的。
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
@H_404_4@
通过取消注释中的default_authentication_plugin=MysqL_native_password@H_404_4@设置来更改MysqL默认身份验证插件
/etc/my.cnf@H_404_4@
使用风险自负
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
@H_404_4@
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
@H_404_4@