基于Docker升级MySQL版本

基于Docker升级MySQL版本


随着网络威胁的不断演变,数据库的安全性至关重要。升级可以修复已知的安全漏洞,提供更强大的加密和访问控制机制,保护您的数据免受潜在的攻击。

确认要升级的版本(一般情况是因为版本存在安全风险漏洞需要升级)

参考MySQL版本对应漏洞补丁文档:https://www.oracle.com/security-alerts/cpujan2024.html

1.备份原有库

#如果是 5版本 --> 8版本 可以直接将数据库导出为sql文件(建议不要直接将整个库导出为一个文件,会报错,需要分开导出)
docker exec -it 容器ID mysqldump -u用户名 -p密码 --all-databases > backup.sql #整个数据库导出一个文件,不建议,会报错

#分开导出为sql文件(建议)
docker exec -it 容器ID mysqldump -u用户名 -p密码 库名1 > backup1.sql
docker exec -it 容器ID mysqldump -u用户名 -p密码 库名2 > backup2.sql
……	#根据实际情况运行

#注意:如果直接明文密码导出,导出后删除sql文件的第一行,有兴趣可以进去看看,第一行不应该在文件内
sed -i '1d' backup1.sql
sed -i '1d' backup2.sql

#大版本相同也可使用以上方法进行备份,也可直接备份整个持久化目录
#例如:
#/data/mysql/data 持久化目录
cp -rp /data/mysql/data /data/mysql/data_bak

2.根据需要升级的版本拉取镜像(也可跳过此步,直接运行自动拉取,建议不跳过)

#目前可用docker镜像源(7.29测试可用,如不可用请百度)
cat << EOF > /etc/docker/daemon.json
{
    "registry-mirrors": ["https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https://dockerhub.icu", "https://docker.ckyl.me", "https://docker.awsl9527.cn"]
}
EOF

#设置完镜像源后拉取镜像
docker pull mysql:版本号	#根据需要拉取版本号

3.运行为容器

#以下为示例,参考时根据自身需要修改

# 持久化示例,根据自身需要进行修改
# /data/mysql/etc  映射本地的配置
# /data/mysql/data 持久化存储目录
# /data/mysql/log  映射本地日志目录

# 先把之前的MySQL容器停止(注意不要删除)
docker stop 容器ID

# 1.跨5版本至8版本
 #运行为容器
 docker run -d --name mysql8_4 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 -v /data/mysql/etc:/etc/mysql/conf.d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/log:/var/log/mysql mysql:8.4 docker-entrypoint.sh mysqld
 #将sql文件复制进去
 docker cp backup1.sql 容器ID:/
 docker cp backup2.sql 容器ID:/
 #进入容器
 docker exec -it 容器ID bash
 	# 导入数据(提前创建好数据库,在此不做演示)
 	mysql -u用户名 -p 库名1 < backup1.sql
 	mysql -u用户名 -p 库名2 < backup2.sql

# 2.大版本相同可用直接挂载之间的数据持久化目录即可
docker run -d --name mysql8_4 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 -v /data/mysql/etc:/etc/mysql/conf.d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/log:/var/log/mysql mysql:8.4 docker-entrypoint.sh mysqld


登录数据库验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值