最近在docker中搭建MySQL8.0 来使用的时候, 通过sqlyog、或者程序中连接数据库时,提示:Authentication plugin 'caching_sha2_password' cannot be loaded
的错误,一直以为是docker的问题,经查看发现,8.0改变了 身份验证插件 , 打开 my.ini (或者my.cofg) 可以看到变更了 5.7及其以前的方式: mysql_native_password
解决 :
Authentication plugin ‘caching_sha2_password’ cannot be loaded 的方法,可以往你的连接工具、或者程序应用显示指定身份验证方式,或者直接改为以前的版本方式:
你可以使用如下方式:
这里root的密码改为123456,使用老版本的身份验证插件方式:
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '123456';
对于全部地址的话去掉localhost直接给root或某个角色更改即可:
ALTER USER root IDENTIFIED WITH mysql_native_password BY '123456';
最后刷新权限即可 FLUSH PRIVILEGES;
最后 附上docker的启动命令:
# 启动mysql容器
docker run -d --name mysql -p 3306:3306 -v /opt/data/mysql/etc:/etc/mysql/conf.d/ -v /opt/data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
docker run -d --name mysql -p 3306:3306 -v /opt/data/mysql/etc:/etc/mysql/conf.d/ -v /opt/data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
#进入mysql容器并使用mysql命令行客户端连接:
docker exec -it mysql mysql -uroot -p123456
docker exec -it mysql mysql -uroot -p123456
有关于docker的问题留言即可。