### mysql版本信息暴露

公司mysql可以获取到版本信息,因此公司让隐藏版本信息,网上收到当地之后(将mysqld中版本号强制改为不存在的版本号),在修改并执行restart命令之后,发现mysql重启失败,报错信息如下

记一次mysql重装

网上搜索该异常,发现很少遇到此问题,并且遇到此问题的人也都是在用户登录的时候发生,解决方法是修改mysql源代码并重新编译源码,由于这个mysql不是源码自行编译安装的(据说是yum安装—后面会说为什么是“据说”)

1.  排查无果只能关闭mysql,因为mysql数据是备份了的,因此打算安装一个mysql最新版本并将原数据导入即可

2.  现有版本的卸载,据开发人员说使用yum安装的,但是我查找yum安装包没有找到

记一次mysql重装

通过rpm查找却又找到了

记一次mysql重装

 

于是我开始按照顺序卸载,最后又发现有几个rpm包始终卸载不了,每次卸载命令执行都报错,提示缺少依赖……!

记一次mysql重装

想来想去我也不可能为了卸载又去装很多东西,最后我又再次尝试了以下yum查找安装报的方法,结果又找到了剩下几个未卸载完成的rpm包!于是我赶紧通过yum卸载mysql的命令将剩余的rpm包卸载掉了,果然在yum卸载的过程中下载并安装了很多东西。

 

3. 安装docker环境,通过docker安装mysql---让运维安装的(下图为mysql镜像启动命令,包含root用户名密码),接下来开始数据导入和授权:

记一次mysql重装

通过docker inspect mysql-prod命令,查看容器磁盘挂载情况

记一次mysql重装

于是我将*.sql文件放到本地磁盘的/app1/docker/mysql/data下,这样在容器中可以在/var/lib/mysql/中得到sql文件

通过docker exec -it d5c522589a0a /bin/bash 进入容器

 

- 在容器中通过mysql -u root -p 命令以及按提示输入密码之后,创建数据库并进入数据库之后,通过source /var/lib/mysql/*.sql 命令将sql中的数据全部导入数据库中。

- 进行一系列mysql的常规操作,创建用户、授予用户权限等。

- 到k8s中查看所有使用到当前数据库的项目,项目数据恢复正常(数据库连接池有重连机制)

 

4. 数据库备份脚本

编写docker环境下mysql备份脚本,利用linux的crontab命令  创建并指定定时执行当前脚本,crontab -e 进入编辑页面(crontab  -l显示当前linux服务器中所有定时任务),如下所示,指定脚本在每天凌晨5点执行,并将脚本的输出信息重定向到指定文件中————编辑器的推出方式与vi编辑器一致。

 

记一次mysql重装

00 05 *   * * cd /usr/local/mysqlBack; sh mysqlDockerBack.sh >> mysqlback.log 2 >> mysqlback.log

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2021-05-21
  • 2021-05-14
  • 2022-01-04
  • 2021-08-23
  • 2022-12-23
猜你喜欢
  • 2021-11-03
  • 2022-12-23
  • 2021-12-03
  • 2021-08-13
  • 2021-05-11
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案