• MySQ漏洞修复


    MySQ漏洞修复

    事件背景

    劳务系统主机存在如下漏洞
    Oracle MySQL Server 安全漏洞(CVE-2019-5443);

    Oracle MySQL Server组件安全漏洞(CVE-2019-5482);

    Oracle MySQL/MariaDB 拒绝服务漏洞(CVE-2021-2011)
    主机使用mysql版本为5.7.27

    厂商补丁:
    Oracle已经为此发布了一个安全公告(2021-01-19)以及相应补丁:
    2021-01-19:Oracle Critical Patch Update Advisory - January 2021
    链接:https://www.oracle.com/security-alerts/cpujan2021.html

    目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
    https://www.oracle.com/security-alerts/cpuapr2020.html

    漏洞分析

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k4umIElr-1661178113315)(https://gitee.com/lofxve/pic-go/raw/master/img/image-20220107135355483.png)]

    解决方案

    对mysql进行小版本升级到>=8.0.27,生产环境无法联网,用rpm 包离线安装,选择就地升级。

    MySQL的两种升级方式

    就地升级(In-place Upgrade)
    关闭旧版本mysql,用新的替换旧的二进制文件或软件包,在现有数据目录上重启数据库,执行mysql_upgrade
    逻辑升级(Logical Upgrade)
    使用备份或导出实用程序(如mysqldump,Xtrabackup)从旧mysql实例导出SQL ,安装新的mysql数据库版本,再将SQL应用于新的mysql实例。

    官方支持的升级路径

    同一个大版本中的小版本升级,比如5.7.25到5.7.28。
    跨版本升级,但只支持跨一个版本升级,比如5.5到5.6,5.6到5.7。
    不支持跨版本的直接升级,比如直接从5.5到5.7,可以先从5.5升级到5.6,再从5.6升级到5.7。

    实践

    备份

    cp -r /usr/local/mysql/data/ /usr/local/data
    
    • 1

    停止mysql服务

    卸载MySQL5.7

    压缩包安装

    find / -name mysql

    rm -rf 上面查出的文件夹

    卸载yum安装的mysql

    使用以下命令查看当前安装mysql情况,查找以前是否装有mysql

    rpm -qa|grep -i mysql
    
    • 1

    停止mysql服务、删除之前安装的mysql

    删除命令:rpm -e –nodeps 包名

      rpm -ev MySQL-client-5.5.25a-1.rhel5
      rpm -ev MySQL-server-5.5.25a-1.rhel5
    
    • 1
    • 2

    如果提示依赖包错误,则使用以下命令尝试:

     rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps
    
    • 1

    如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

    则用以下命令尝试:

    rpm -e --noscripts MySQL-client-``5.5``.25a-``1``.rhel5
    
    • 1

    查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

    find / -name mysql
    rm -rf /var/lib/mysql
    
    • 1
    • 2

    再次查找机器是否安装mysql

    rpm -qa|grep -i mysql
    
    • 1

    安装MySQL8.0.27

    下载

    wget --no-check-certificate https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

    解压并移动

    xz -dk mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
    tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
    mv mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql8
    
    • 1
    • 2
    • 3

    创建用户

    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    chown -R mysql:mysql /usr/local/mysql8
    
    • 1
    • 2
    • 3

    修改系统配置文件

    cd /usr/local/mysql8/support-files
    cp mysql.server /etc/init.d/mysql
    
    • 1
    • 2

    vim /etc/init.d/mysql

    basedir=/usr/local/mysql8
    datadir=/usr/local/mysql/data
    
    • 1
    • 2

    vim /etc/my.cnf 可以不改变原来的文件

    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [database]
    character_set_database=utf8mb4
    [mysqld]
    bind-address=0.0.0.0
    transaction-isolation=READ-COMMITTED
    server-id=1
    log-bin
    log_bin_trust_function_creators=1
    port=3306
    max_connect_errors=99999
    max_error_count=65535
    character-set-server=utf8mb4
    max_connections=9999
    max_user_connections=8888
    wait_timeout=31536000
    interactive_timeout=31536000
    innodb_buffer_pool_size=128M
    innodb_buffer_pool_instances=1
    innodb_buffer_pool_chunk_size=128M
    max_allowed_packet=100M
    sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
    
    • 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

    启动

    /etc/init.d/mysql start

    登录

    mysql -uroot -p
    如果出现:-bash: mysql: command not found
    就执行: # ln -s /usr/local/mysql8/bin/mysql /usr/bin --没有出现就不用执行

    输入之前初始化生成的密码,登录成功,至此安装完毕!

    设置开机自启动

    cd /etc/init.d/
    chmod +x mysql
    chkconfig --add mysql
    chkconfig --list
    chkconfig --level 345 mysql on
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    研一如何开始大模型微调
    函数7:递归
    腾讯开源混元DiT文生图模型,消费级单卡可推理
    将企业内容管理(ECM)与企业流程集成的 8 个技巧
    13.练习题(年月日,打字游戏)
    个人怎么投资伦敦金?
    SAP MM ME27 创建公司内STO单
    商场百货会员引流 购物中心会员拉新方式
    【TensorFlow深度学习】创建与操作张量的典型实践与技巧
    Apollo微服务配置中心详解
  • 原文地址:https://blog.csdn.net/wei_zhen_dong/article/details/126474870