概要描述
对 TDH 集群进行安全扫描,有可能会扫描出 MariaDB 的漏洞,这是因为 Manager 组件从TDH 5.0 开始使用了 MariaDB 非最新的版本存储元数据。
可以参照本文方法对MariaDB数据库进行升级。
详细说明
本文介绍的升级方案适用环境:
- 操作系统:CentOS 7.x
- TDH集群:TDH 5.X~7.X
可以参照如下方法将MariaDB升级到10.2.7, MariaDB 10.2.7是本文发布的时候已经经过验证的与 TDH 集群适配的最高版本,使用本文档来升级到更高版本不能保证正确性。
-
点击下载 MariaDB 10.2.7 更新包:
MariaDB_10.2.7.tar
(MD5: 8c2a0dec7d3d5684023f169ff63ef2fd) -
将其上传到需要升级 MariaDB 的TDH Manager节点并解压:
tar -xvf MariaDB_10.2.7.tar
,解压后,可以看到文件被解压到了mariadb-10.2.7-rhel-7-x86_64-rpms
目录:# tar -xvf MariaDB_10.2.7.tar
-
停止正在运行的transwarp-manager-db服务,并备份数据库。
停止数据库服务:systemctl stop transwarp-manager-db
备份数据库:cp -r /var/lib/transwarp-manager/master/data/mysql/ /var/lib/transwarp-manager/master/data/mysql.bak///停止数据库服务 # systemctl stop transwarp-manager-db //备份数据库 #cp -r /var/lib/transwarp-manager/master/data/mysql/ /var/lib/transwarp-manager/master/data/mysql.bak/
-
进入
mariadb-10.2.7-rhel-7-x86_64-rpms
目录,运行脚本setup_repository
脚本设置升级使用的MaraiaDB Repo:# cd mariadb-10.2.7-rhel-7-x86_64-rpms # ./setup_repository
-
安装MariaDB升级:yum install -y MariaDB-server
# yum install -y MariaDB-server
-
安装完成后,删除第4步创建的Repo源:rm -f /etc/yum.repos.d/mariadb.repo
# rm -f /etc/yum.repos.d/mariadb.repo
-
修改mysql日志所在目录权限:chmod a+x /var/log/transwarp-manager/master
# chmod a+x /var/log/transwarp-manager/master
-
启动transwarp-manager-db数据库服务:systemctl start transwarp-manager-db
# systemctl start transwarp-manager-db
-
执行 mysql_upgrade :
- TDH 5.x, 6.x, 7.x:
# mysql_upgrade -uroot -p$(cat /etc/transwarp-manager/master/db.properties |grep io.transwarp.manager.db.password |awk -F = '{print $2}') -S /var/run/mariadb/transwarp-manager-db.sock
- TDH 4.x:
# mysql_upgrade
- TDH 5.x, 6.x, 7.x:
-
正确完成升级后,可释放备份的数据:
# rm -rf /var/lib/transwarp-manager/master/data/mysql.bak/
升级失败的常见问题
-
运行 yum install MariaDB-server 失败
- 原因1:安装MariaDB-server时,需要检查相关依赖,从系统repo源中下载安装包,当前错误是os.repo源的配置文件损坏
- 解决方法1:进入/var/lib/transwarp-manager/master/pub/os/Packages,利用rpm -ivh手动安装报错的包
- 原因2:MariaDB的Repo配置文件/etc/yum.repos.d/mariadb.repo中有gpgkey那行,安装的时候会根据该地址去check是否正确,当无法连接外网时,报错
- 解决方法2:修改MariaDB Repo配置文件 /etc/yum.repos.d/mariadb.repo, 注释掉gpgkey行,然后加上 gpgcheck=0, 然后执行下 yum clean all, 再重新 yum install MariaDB-server 安装
-
当集群开启Manager HA后,mysql_upgrade执行失败,利用前面的mysql_upgrade命令升级报错
- 原因:当前目录下没有transwarp-manager数据库目录,不能通过之前的命令更新manager数据库
- 解决方法:去掉-u 和-p参数:
# mysql_upgrade -S /var/run/mariadb/transwarp-manager-db.sock
若有其他疑问,您也可以 联系星环科技全球技术支持中心 以寻求帮助。