概要描述
TxSQL 的 root 用户被 TxSQL 的 phxbinlogsvr 角色使用,因此 root 用户的密码不能直接使用SQL语句进行修改,因为直接的修改不能将这种更改通知到 phxbinlogsvr 角色,会导致 phxbinlogsvr 无法连接到其对应的 MySQL 角色,然后导致 TxSQL 瘫痪。
本案例针对 TDH 集群的TXSQL 服务的 root 用户密码修改做一个演示。
详细说明
TDH 集群修改TXSQL 服务的root 密码的操作主要分以下几个步骤:
- 在 TXSQL Master 主节点,使用 txsql.sh 脚本修改 root 用户密码
- 使用修改后的密码以及 socket 登录 TXSQL 数据库修改 ‘root’@’%’ 的密码
- 修改 TXSQL 服务配置中的 root 用户密码
- 修改其他使用 root 密码的服务中 root 密码的配置
- 重启 TXSQL 生效
在 TXSQL Master 主节点,使用 txsql.sh 脚本修改 root 用户密码
进入TXSQL Master pod,执行/usr/bin/txsql/tools/txsql.sh passwd -p <旧密码> -P <新密码>
旧密码可以通过配置文件查看,相关配置文件为:/etc/txsql1/conf/db.properties,具体参见下图:
执行修改密码后的输出如下:
使用修改后的密码以及 socket 登录 TXSQL 数据库修改 ‘root’@’%’ 的密码
在pod内,使用 root 用户登录 txsql,然后修改root在其他host的密码:
登录的时候需要指定 socket,socket 的获取方式可以通过 ps -ef|grep mysqld 的输出查看,如下图所示;
mysql -uroot -p1qaz2wsX -S /vdir/hadoop/txsql/percona.workspace/tmp/percona.sock
然后修改root 用户在其他节点的密码;
SET PASSWORD FOR 'root'@'%' = PASSWORD('<新密码>');
修改 TXSQL 服务配置中的 root 用户密码
针对旧版本的Manager,可以在 Manager 页面上直接修改 TxSQL 配置中的 root 用户的密码,修改之后配置TxSQL服务。
较新版本的TDH的 Manager 页面取消了明文的txsql密码修改,需要逐个修改pod内 /usr/bin/txsql/etc/db.properties
文件中配置的root用户的密码。
同时进入到 Manager 的 MariaDB 中修改对应的配置配置项为 root.password
select * from service_config where serviceId=(select id from service where type = 'TXSQL');
然后更新该配置项root.password
的 value 值为新密码
update service_config set value='1qaz2wsX' where name='root.password' and serviceId=(select id from service where type = 'TXSQL');
修改其他使用 root 密码的服务中 root 密码的配置。
如果有其他使用root 密码的服务,也需要使用类似第三步的方法修改 root 用户密码
重启 TXSQL 生效
重启txsql生效,此处一定是在manager 页面重启txsql,不能只是在后台删除 txsql 的pod。
使用新密码登录验证。