公司项目扫描漏洞扫描出Mysql漏洞
从漏洞详情中给出的解决办法进入官网查看信息
查询对应的CVE编号:CVE-2022-21460
发现当前使用Mysql版本为5.7.37,百度了一圈没找到打补丁的方法,索性就进行版本升级
ps:如果有人会对Mysql进行打补丁,麻烦评论区留个言,我向您请教一下
后边就是去官网下载了最新的Mysql-8.0.29的tar包
大致的升级流程如下(由于我没有删除5.7的版本,5.7和8.0进行并存,只不过运行的版本为8.0):
- 备份5.7数据库数据
- 备份5.7配置文件
- 备份5.7的/etc/init.d/mysql文件
- 解压Mysql 8.0
- 替换/etc/my.cnf 文件(配置文件按照自己需求进行配置)
- 安装Mysql 8.0 (mysql --initialize 记得配置日志路径,安装后初始密码在日志里边,大小写敏感一定要规定好,切记!如果现在不规定好大小写敏感,后边数据库运行之后就不能更改了)
- 将suppor-file文件夹下的mysql.server替换到/etc/init.d/mysql 文件
- vim /etc/init.d/mysql 配置自己的数据路径、Mysql安装路径
- 使用 ln -sf 进行软连接
- 启动Mysql 8.0
- mysql -uroot -p 进行登录 从日志中获取初始密码
- 下边就是配置navicat的远程连接和用户密码了
- 所有东西都完成后就只需要恢复数据库了
- 如果使用 mysql -uroot -p -f database < bak.sql 可以加-f遇到错误跳过而不是中断,中断的话可能你还需要重新再恢复一遍,数据量大的话恢复是要很长时间的
关于升级流程的坑,我踩了个大小写敏感的,数据都恢复完了,才发现对接的服务端是写入的大写表,Java端查询的小写表,希望能对看到的朋友有帮助。