- 使用场景
- 重置步骤
- 重置数据库root用户密码为空
- 重置数据库密码
文档暂时只支持未开启ha时manager使用的mariadb,开启ha的txsql和kundb类似,my.cnf文件地址和登录数据库命令不同
使用场景
manager数据库密码是通过调用接口并根据db.properties文件获取的,获取manager数据库密码参考该文档:如何查看后台数据
所以在以下两种情况时会报数据库密码错误的问题,需要重置manager数据库的密码
- db.properties文件丢失,无法获取数据库密码
- db.properties文件存在,但是获取后的密码无法登录数据库
重置步骤
重置数据库root用户密码为空
- 设置免密登录,修改/etc/transwarp-manager/master/my.cnf文件,在mysqld标签中加一行skip-grant-tables
- 重启manager-db
- 8.x之前/etc/init.d/transwarp-manager-db restart
- 8.x之后systemctl restart transwarp-manager-db
- 使用mysql -S /var/run/mariadb/transwarp-manager-db.sock -D mysql登录数据库
- select *from user查看user表确保有root用户
- 执行sql语句,先设置root用户密码为空
- update user set Password='' where User='root';
- 修改/etc/transwarp-manager/master/my.cnf文件,将skip-grant-tables去掉,重启db
重置数据库密码
- 如果db.properties文件不存在
6.0.2006a以及7.0.2007a之前版本,新建/etc/transwarp-manager/master/db.properties,拷贝下面内容到该文件中 - io.transwarp.manager.db.driver=com.mysql.jdbc.Driver
- io.transwarp.manager.db.url=jdbc:mysql://localhost:3308/transwarp_manager?autoReconnect=true&createDatabaseIfNotExist=false&characterEncoding=UTF-8
- io.transwarp.manager.db.user=transwarp
- io.transwarp.manager.db.password=PZmZWTD6xh
6.0.2006a以及7.0.2007a和之后版本,新建/etc/transwarp-manager/master/db.properties,拷贝下面内容到该文件中,同时执行后面的命令,生成auth.jks文件- transwarp.manager.db.driver=org.mariadb.jdbc.Driver
- transwarp.manager.db.url=jdbc:mariadb://localhost:3308/transwarp_manager?failOverReadOnly=false&createDatabaseIfNotExist=false&characterEncoding=UTF-8
- transwarp.manager.db.user=transwarp
- transwarp.manager.db.password.store=/etc/transwarp-manager/master/auth.jks
- transwarp.manager.db.password.store.key=5rvDjOGMHF
- transwarp.manager.db.password.key=xluRnSdGsE
- transwarp.manager.db.password.alias=db
- manager-9.2之前:
- java -cp /etc/transwarp-manager/master:/usr/lib/transwarp-manager/master/lib/*:/usr/lib/transwarp-manager/common/lib/* io.transwarp.guardian.utils.security.keystore.KeyStoreUtil -a db -f /etc/transwarp-manager/master/auth.jks -pPZmZWTD6xh -c -mk 5rvDjOGMHF -pk xluRnSdGsE
- manager-9.2及之后版本
- /usr/lib/transwarp-manager/common/jdk/bin/java -cp /etc/transwarp-manager/master:/usr/lib/transwarp-manager/master/lib/*:/usr/lib/transwarp-manager/common/lib/* io.transwarp.guardian.utils.security.keystore.KeyStoreUtil -a db -f /etc/transwarp-manager/master/auth.jks -pPZmZWTD6xh -c -mk 5rvDjOGMHF -pk xluRnSdGsE
- 获取数据库密码
- 使用root用户登录数据库
mysql -u root -S /var/run/mariadb/transwarp-manager-db.sock -D mysql
- 执行下面sql语句,重置root和transwarp用户密码
- GRANT ALL PRIVILEGES ON transwarp_manager.* TO root@'localhost' IDENTIFIED BY '密码';
- GRANT ALL PRIVILEGES ON transwarp_manager.* TO transwarp@'localhost' IDENTIFIED BY '密码';
- GRANT ALL PRIVILEGES ON transwarp_manager.* TO transwarp@'%' IDENTIFIED BY '密码';
- flush privileges;
- 退出数据库,使用root用户和密码尝试登录数据库