1. 单机版
指定版本:
docker run -d --name my-mysql -p 3301:3306 -e MYSQL_ROOT_PASSWORD=123456 --privileged mysql:5.7
不指定版本,默认是latest,这时候客户端连接服务器的时候,会出现一个错
Authentication plugin 'caching_sha2_password' cannot be loaded: ....
这是因为8.0之后的版本,更换了新的身份验证插件caching_sha2_password
, 原来的身份验证插件为mysql_native_password
修复步骤:
1.进入mysql容器
docker exec -it my-mysql /bin/bash
或者
docker exec -it my-mysql bash
my-mysql是docker容器名
2.进入mysql
mysql -uroot -p123456
-u 指定用户,这里是root用户
-p 后面跟密码
3.修改校验方式和密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
'root':可以改为你自己定义的用户名
'password':指的是用户密码,即想使用的验证密码
'%':指的是该用户开放的IP,%表示所有IP均可访问,可以是'localhost'(仅本机访问,相当于127.0.0.1),可以是具体的'*.*.*.*'(具体某一IP)
比如执行`ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';`,那么mysql对用户名为root密码为123456的校验改为了mysql_native_password方式
修复步骤的参考链接:https://www.cnblogs.com/woshishanshan/p/10572179.html