docker安装mysql8.0

置顶精帖 82
配置好docker环境,执行以下命令:
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /etc/localtime:/etc/localtime mysql
此时数据库已经启动,但是无法连接,报错如下:

原因
mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决办法,运行以下命令:
docker exec -it mysql bash //进入docker镜像
mysql -uroot -p //登陆数据库


ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;//更改加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';//更新用户密码
FLUSH PRIVILEGES;//刷新权限
回帖