mysql升级5.7.32版本后端口探测还显示的原5.7.22版本问题排查
今天对一批服务器进行安全检查,其中有一台检查到3320和3321端口使用的5.7.22版本mysql,此版本存在漏洞,建议升级至5.7.32。
但是系统管理员说已经升级至5.7.32版本了,肯定是检查的有问题,还贴出了mysql -V及rpm -qa | grep mysql的查询结果:

还真是5.7.32,一瞬间怀疑检查结果有问题,又用nmap探测了一下这台服务器:

发现没问题,显示的很清楚5.7.22-log。
但是这样并不足以说服管理员,于是想的是先直接find找一下是否5.7.22和5.7.32的安装包都有,查完发现确实都有。再看了下/etc/my.cnf里配置的端口,安装目录运行目录都和进程里显示的一样没有问题。这样看来起码不是误报,想着应该是两个版本的mysql都安装了,非得把两个安装目录都找出来,结果绕来绕去也只找到了5.7.32的安装路径。
转头一想,找安装目录页没有意义,探测到的是3220和3221端口运行的5.7.22mysql,那直接"mysql -h 127.0.0.1 -uroot -P3320 -p"连上3320端口运行的mysql,在数据库里查一下版本就很清楚是探测信息有误还是数据库版本确实是5.7.22了。
果然,连上3320端口的mysql,使用"select version();"查看版本,显示5.7.22-log,和检查结果一样,说明我这边没问题。

不过还是对使用mysql -V和sql语句查询结果不一致有疑惑,于是做了进一步排查。
执行ps -ef | grep mysql 和 cat /usr/lib/systemd/system/mysqld.service | grep Exe
发现3320和3321端口的进程mysqld运行路径和mysql启动文件mysqld.service中配置的进程启动路径是一致的。

于是在3320端口的进程运行路径下查询mysql版本,执行"/usr/sbin/mysqld -V",结果显示版本是5.7.32,说明3320端口下的mysql版本确实已经升级过了,之所以连上数据库用sql语句查询以及nmap探测都显示5.7.22版本,应该是升级版本之后没有重启服务导致的。

由于是测试环境,也没有重要数据,而且时间比较紧,所以并未做备份,直接将3320和3321两个端口的mysql服务重启。
systemctl restart mysqld@3320
systemctl restart mysqld@3321
重启之后再查mysql版本,无论是nmap探测端口,还是sql语句查询,或者mysql -V直接查,版本显示都一致是5.7.32了。


浙公网安备 33010602011771号