为了增加安全已经漏扫,进行MySQL修改版本号
修改任何信息前,都要仔细确认和验证. 最好是备份. 而不能备份的时候,最好是多个人复核一下再操作.(比如本教程这种修改内存的操作,没法备份,只能复核的时候仔细一点了.)
gdb正好就能做到修改内存中的参数变量. 也就是我们只需要找到对应的变量, 然后使用gdb来修改内存中的值即可
只修改内存中的值, 所以后续重启的时候还得修改, 不然就变回去了.
比如, 我们可以直接使用如下命令将所有变量全部保存到某个文件中
echo 'info variables'|gdb -p `pidof mysqld` > /tmp/mysql_variables_t20250115.txt
然后我们搜索version关键字就能找到如下信息
<data variable, no debug info> server_version;
这个(server_version)看起来就是mysql的版本值了, 然后我们只需要修改该值即可,比如我们可以将8.0.28修改为9.0.28 只需要执行如下命令即可
gdb -p `pidof mysqld` --batch --ex 'print server_version' --ex 'set server_version=774909488+9'
小版本对应哪个参数目前还没找到, 有兴趣的同学可以自己尝试下(建议在自己的测试环境验证, 有些变量修改之后会导致数据库dang掉, 有些参数甚至会破坏ibdata1.)