• 基于docker的Mysql版本升级


    引言

    随着版本的迭代和漏洞的提出,Mysql作为一款软件避免不了打补丁的命运。

    由于docker版本的升级教程较少,以下基于docker版本的MySQL升级说明。

    以下操作均在本地虚拟机中操作验证。

    使用runlike查看启动脚本

    镜像与镜像的差距就在启动命令的区别。启动命令可以根据 docker inspect 容器名 推导出的参数推到出来一部分,也只是一部分。

    python工具runlike就是基于此远离开发的,以下举例说明使用方法,

    ## 对于历史镜像使用runlike看启动命令,基于python
    pip3 install runlike
    ## 查看历史镜像,以kibana为例说明runlike的使用
    docker ps --all
    runlike -p kibana
    docker run --name=kibana \
            --hostname=45b31f642a7d \
            --user=kibana \
            --volume=/usr/local/elk7.14.2/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
            --volume=/usr/local/elk7.14.2/kibana/data:/usr/share/kibana/data \
            --volume=/usr/local/elk7.14.2/kibana/plugins:/usr/share/kibana/plugins \
            --network=elastic \
            --workdir=/usr/share/kibana \
            -p 5601:5601 \
            --restart=always \
            --log-opt max-size=100m \
            --log-opt max-file=2 \
            --runtime=runc \
            --detach=true \
            -t \
            kibana:7.14.2 \
            /usr/local/bin/kibana-docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    安装低版本的MySQL

    # 拉取镜像
    docker pull mysql:8.0.27
    ## 使用runlike查看MySQL的启动命令
    runlike -p mysql-yulin
    docker run --name=mysql-yulin \
            --env=MYSQL_ROOT_PASSWORD=123456 \
            --volume=/home/centos/yulin/mysql/data:/var/lib/mysql \
            --volume=/home/centos/yulin/mysql/conf:/etc/mysql/conf.d \
            --privileged \
            -p 20020:3306 \
            --expose=33060 \
            --restart=always \
            --runtime=runc \
            --detach=true \
            mysql:8.0.27 \
            --character-set-server=utf8mb4
    ## 通过volume创建对应的目录
    mkdir -p /home/centos/yulin/mysql/data
    mkdir -p /home/centos/yulin/mysql/conf
    ## 检查网络&创建网络
    sudo docker inspect wvp20_default
    # 网络信息
    [
        {
            "Name": "wvp20_default",
            "Created": "2023-10-23T09:12:47.774395505+08:00",
            "Scope": "local",
            "Driver": "bridge",
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "default",
                "Options": null,
                "Config": [
                    {
                        "Subnet": "172.27.0.0/16",
                        "Gateway": "172.27.0.1"
                    }
                ]
            },
            "Internal": false,
            "Attachable": true,
            "Ingress": false,
            "ConfigFrom": {
                "Network": ""
            },
            "ConfigOnly": false,
        }
    ] 
    # 创建网络,此处镜像没有使用新建网络,仅做演示
    docker network create -d bridge wvp20_default
    ## 创建mysql配置
    vi /home/centos/yulin/mysql/conf/mysql.cnf
    ## 启动容器
    docker run --name=mysql-yulin \
            --env=MYSQL_ROOT_PASSWORD=123456 \
            --volume=/home/centos/yulin/mysql/data:/var/lib/mysql \
            --volume=/home/centos/yulin/mysql/conf:/etc/mysql/conf.d \
            --privileged \
            -p 20020:3306 \
            --expose=33060 \
            --restart=always \
            --runtime=runc \
            --detach=true \
            mysql:8.0.27 \
            --character-set-server=utf8mb4
    ## 查看运行状况
    docker ps
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    升级低版本的MySQL

    # 拉取镜像
    docker pull mysql:8.0.34
    ## 停止之前的容器
    docker stop mysql-yulin
    ## 启动容器
    docker run --name=mysql-yulin2 \
            --env=MYSQL_ROOT_PASSWORD=123456 \
            --volume=/home/centos/yulin/mysql/data:/var/lib/mysql \
            --volume=/home/centos/yulin/mysql/conf:/etc/mysql/conf.d \
            --privileged \
            -p 20020:3306 \
            --expose=33060 \
            --restart=always \
            --runtime=runc \
            --detach=true \
            mysql:8.0.34 \
            --character-set-server=utf8mb4
    ## 查看运行状况
    docker ps
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    说明

    以上MySQL镜像基于8.0.27升级到8.0.34,是Orcale官方镜像。不同镜像版本可能升级过程不一致。

    请在虚拟机中操作验证,禁止线上生产主机操作。

  • 相关阅读:
    MacOS系统Chrome开发者模式下载在线视频
    react中自定义上传文件的hook
    Painless脚本在Elasticsearch的高级应用
    Java面向对象(高级)-- 类中属性赋值的位置及过程
    裙式给料机的全球市场在2030年前将达到64亿美元!
    和月薪3W的聊过后,才知道自己一直在打杂...
    网安学习笔记-day14,nmap和hydra常用命令
    Synopsys Sentaurus TCAD系列教程之-Tcl《3》
    HDFS分布式文件存储系统
    第四天:gec6818开发板串口蓝牙模块的使用与配置
  • 原文地址:https://blog.csdn.net/sunzroad/article/details/134026771