从官网拉取最新mysql镜像
docker pull mysql
检查镜像拉取是否成功
docker images
创建容器
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql
-e TZ=Asia/Shanghai // 设置时区为上海,这条一定要加,不然你的 mysql 时间会差8小时
这里用客户端连接 mysql 出现一个错误 Authentication plugin 'caching_sha2_password' cannot be loaded
出现这个原因是 mysql8 之前的版本中加密规则是 mysql_native_password, 而在mysql8之后, 加密规则是 caching_sha2_password, 解决问题方法有两种
一种是升级 navicat 驱动
一种是把mysql用户登录密码加密规则还原成 mysql_native_password.
进入容器内部
docker exec -it mysql bash
登陆 mysql
mysql -uroot -p123456
修改用户密码加密规则,正常连接(看了网上很多教程说要 FLUSH PRIVILEGES; #刷新权限 ,但是我并没有遇到这种情况,记录一下)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';