DM8更换key操作步骤

前言:本操作步骤仅针对DM8数据库的key替换步骤,请在操作前确认以下两部分内容:
1.是否为DM8数据库;
2.所使用的key是否对应具体的操作系统版本及CPU型号;
3.替换key可以不重启数据库服务,但请注意替换时间,预留回退操作。

具体操作步骤:

一、查看操作系统版本及CPU型号

1.1查看操作系统版本

cat /etc/issue(各版本命令可能存在差异)

image.png

1.2查看CPU型号


复制

image.png

1.3通过操作系统版本,选定具体的正式dmxxxxx.key,等待替换

二、查看服务器达梦数据库运行状态

ps -ef|grep dmserver
 

image.png


其中/home/dmdba/dm/dmdbms/bin即为KEY更换目录(及为安装目录);

三、确认达梦数据库版本及许可时间

使用命令行的方式或者达梦管理工具登录数据库,查询达梦数据库版本及许可时间,命令行方式和达梦管理工具查看方式,选择其一即可:

3.1命令行的方式

在达梦数据库安装路径的bin文件下,执行
./disql sysdba/sysdba密码@IP:端口
select * from vversion;selectexpireddatefromvversion;selectexpiredd​atefromvlicense;

image.png

3.2达梦管理工具登录数据库查询

image.png

四、更换DM8key文件

1.进入安装目录:
/home/dm/dmdbms/bin (步骤二中确认的路径,以此为例子)
2.备份原有dm.key文件
mv dm.key dm.key.bak
3.导入新文件dmXXXXXX.key(步骤一中选定的key)到/home/dm/dmdbms/bin目录下
mv dmXXXXXX.key dm.key
更改文件属性:
chown dmdba.dinstall dm.key

五、key文件生效

Key文件的生效可以选择以下两种方式之一,生产环境建议不重启数据库方式。
5.1不重启数据库方式
sysdba登录数据库,执行
SP_LOAD_LIC_INFO();
查看许可时间是否生效:
select expired_date from v$license;
如果上述操作没问题,不需要执行下列操作

5.2数据库集群的许可更换

针对达梦数据库集群,包含数据库守群集群DM DataWatch、读写分离集群DMRWC、共享存储集群DMDSC和分布式集群DMDPC等,所有节点均需要执行上述步骤。

5.3 重启数据库服务(慎用

重启数据库服务后,查看许可时间
select expired_date from v$license;
ZYJ达梦数据重启
找到数据库dm.ini文件,纪委项目一般数据库安装路径为:/opt/dmdbms,数据存放路径为/data,视现场情况不同有所区别
cd /opt/dmdbms/bin
启动数据库
./dmserver /data/DAMENG/dm.ini
关闭窗口,不要停止服务
查看服务运行状态
ps -ef|grep dmserver

<think>好的,用户的问题是关于人人开源框架在更换数据库后登录页验证码不显示的解决方案。我需要先回顾用户提供的引用内容,尤其是引用3到5,这些涉及到人人开源框架的部署和配置。首先,用户提到更换数据库,可能是指从默认的MySQL换成了其他数据库,比如PostgreSQL或者Oracle。验证码不显示通常与后端生成或存储验证码的机制有关。根据引用3,验证码生成和存储可能依赖于数据库,所以更换数据库后配置不正确会导致验证码无法存储或读取。接下来,我需要考虑可能的故障点。首先是数据库连接配置是否正确,包括驱动类、URL、用户名和密码。如果更换数据库类型,比如从MySQL换成SQLServer,驱动类和JDBC URL都需要修改,否则连接会失败,导致验证码无法存储到数据库。其次,验证码相关的表结构是否在新数据库中正确创建。人人开源框架可能有初始化SQL脚本,用户可能在更换数据库后没有执行这些脚本,导致缺少必要的表,比如sys_captcha表。需要检查新数据库中是否存在该表,以及字段是否正确。 另外,引用2中提到用户密码的处理,可能涉及到加密方式,但验证码的存储可能使用的是单独的机制,比如将验证码存储在数据库中,并在登录时进行比对。如果数据库连接失败,验证码无法存储,前端自然无法获取到显示的验证码。 还有可能是缓存或Redis配置的问题。如果框架使用Redis来存储验证码,更换数据库可能不影响,但如果配置了数据库存储,而Redis配置错误,也可能导致问题。但根据引用5,人人-security使用的是Shiro和SpringBoot,可能更倾向于数据库存储。 还需要检查后端日志,查看是否有数据库连接异常或SQL执行错误,这能快速定位问题。例如,驱动类不匹配会导致启动失败,或者SQL语法不兼容不同数据库,比如MySQL的语句在PostgreSQL中可能报错。解决方案可能包括:1.检查数据库连接配置,确保驱动、URL正确;2.执行SQL脚本创建必要表;3.检查数据库权限,确保应用有权限读写表;4.查看后端日志确认具体错误;5.如果是分布式环境,可能需要检查Redis或其他缓存配置。 另外,引用3提到前后端分离部署,如果后端未正确启动或接口无法访问,前端可能无法加载验证码图片。需要确认后端服务是否正常运行,验证码生成接口是否可达。总结步骤:检查数据库配置是否正确→执行SQL建表→查看日志定位错误→调整SQL兼容性→验证后端接口。</think>针对人人开源框架更换数据库后验证码不显示的问题,请按以下步骤排查解决: ### 一、检查数据库连接配置 1. 确认`application.yml`中数据库驱动类名、JDBC URL、账号密码已修改为**新数据库类型** ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver # 需改为新数据库驱动 url: jdbc:mysql://localhost:3306/renren_fast?useUnicode=true # 需调整协议和参数 username: root password: 123456 ``` 2. **MySQL迁移到其他数据库**需注意: - PostgreSQL示例: ```yaml driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/renren_fast ``` ### 二、验证码表结构检查 1. 在新数据库中执行初始化SQL脚本(原框架提供的`sys_captcha.sql`) ```sql CREATE TABLE sys_captcha ( uuid char(36) NOT NULL COMMENT 'uuid', code varchar(6) NOT NULL COMMENT '验证码', expire_time datetime DEFAULT NULL COMMENT '过期时间', PRIMARY KEY (uuid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 2. 检查表权限:确保应用账号有`SELECT/INSERT/DELETE`权限 ### 三、验证码生成逻辑排查 1. 查看`CaptchaController`是否依赖数据库存储 ```java @Autowired private SysCaptchaService sysCaptchaService; // 需确认是否使用数据库存储 ``` 2. 检查验证码生成接口`/api/captcha.jpg`响应状态码(正常应为200) ### 四、日志分析关键点 1. 查看启动日志是否报`Table 'xxx.sys_captcha' doesn't exist` 2. 检查验证码生成时的SQL异常日志 3. 观察数据库连接池活跃连接数是否异常 ### 五、特殊数据库适配方案 若迁移到**Oracle/SQL Server**等数据库: 1. 修改分页方言配置 ```yaml mybatis-plus: configuration: db-config: db-type: oracle ``` 2. 调整主键生成策略(Oracle需序列支持) ### 六、快速验证方法 1. 手动插入测试验证码记录 ```sql INSERT INTO sys_captcha(uuid, code, expire_time) VALUES ('test-uuid','123456', NOW() + INTERVAL 5 MINUTE) ``` 2. 访问接口验证数据返回: `GET /api/captcha/info?uuid=test-uuid` 应返回`{"code":123456}` ### 典型解决方案案例 某用户从MySQL迁移到**达梦数据库**后验证码不显示,原因为: 1. 未修改驱动类为`dm.jdbc.driver.DmDriver` 2. 未调整JDBC URL中的`useUnicode`参数 3. 未执行达梦适配的DDL脚本(需将`datetime`类型改为`TIMESTAMP`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值