Docker之部署Mysql

文章介绍了如何使用Docker部署MySQL8.0.12,包括拉取镜像、运行容器、开放端口以及处理新版本加密规则导致的连接问题。在遇到2059错误时,需进入容器修改root用户的加密方式为mysql_native_password以兼容旧版工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过docker对Mysql进行部署。
如果没有部署过docker,看我之前写的

拉取镜像

前往dockerHub官网地址,搜索mysql。
在这里插入图片描述

找到要拉取的镜像版本,在tag下找到版本。
在这里插入图片描述
拉取mysql镜像,不指定版本数,默认拉取最新的镜像,我这里拉取8.0.12版本

sudo docker pull mysql:8.0.12

在这里插入图片描述

运行容器

sudo docker run -d -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name  mysql mysql:8.0.12
参数解释
-p 3306:3306将容器的3306端口映射到主机的3306端口
-v /usr/local/mysql/data:/var/lib/mysql将容器中的数据文件夹挂载到主机对应的/usr/local/mysql/data文件夹中
-v /usr/local/mysql/conf:/etc/mysql/conf.d将容器的配置文件夹挂载到主机对应的/usr/local/mysql/conf文件夹中
-e MYSQL_ROOT_PASSWORD=123456设置初始化root用户的密码

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent && firewall-cmd --reload

连接MySQL出现2059问题

部署后,通过navicat连接mysql发现报出2059的异常
在这里插入图片描述

这是因为mysql 在8版本以后的加密规则为caching_sha2_password,而之前版本的加密规则为mysql_native_password

所以需要设置root用户的加密规则为mysql_native_password

进入容器

docker exec -it mysql bash

登录mysql

mysql -u root -p

修改加密方式

如果是不在非本地连接mysql,需要修改的是root@%的加密方式

alter user 'root'@'%' identified with mysql_native_password by '123456';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值