关于docker下的kingbase人大金仓替换license
摘要:本文介绍解决人大金仓数据库因License证书过期导致无法启动的方法。步骤包括:1)根据版本号从官网下载对应证书;2)将新证书复制到容器内替换旧证书;3)修改证书权限为kingbase用户;4)重新启动数据库。适用于使用官方镜像的Docker容器,帮助解决证书过期导致的启动失败问题。(149字)
用于解决因为license证书过期,导致人大金仓无法启动的问题。
前言
应用场景:人大金仓和一般数据库一样在重启后会校验证书,如果你长期运行不重启是没事的,然后贸然重启同时又过了证书许可的日期,会导致证书无法通过,从而数据库无法正常启动。
问题展示:docker启动容器正常启动,但是测试端口以及进入容器手动启动kingbase,发现kingbase无法正常启动,启动报错证书过期,如果是官方镜像还原的容器就是进入/home/kingbase/install/kingbase/bin,使用./sys_ctl -D /home/kingbase/userdata/data/ start使用启动指令,报错关于证书过期的。
前提条件:知道自己数据库版本号(这个方便去官网找对应的证书下载),不知道也没关系,但是比较费时间
如果你这些都符合那么就符合解决公式,话不多说下面开始对症下药
一、下载证书
如果知道对应版本号下载对应版本的证书,证书所在位置在官网下载中心授权文件中,如果你不知道版本号,请优先把失效的老证书下载到宿主机,查看版本,知晓版本后去官网找对应的下载,注意右上角如图右上角是能切换版本的。
二、复制证书到容器内
1.将老证书改名或者备份到宿主机。
2.通过docker cp将对应宿主机文件复制到docker容器内,具体指令docker cp /path/on/host my_container:/path/in/container
附注:如果找不到证书,可以使用find / -name license.dat搜索关于license的文件。
三、证书授权
由于证书是由root用户传入的,但是kingbase数据库使用用户是kingbase,所以对上传的文件要进行授权处理。
指令如下
1.进入docker exec -it -u root 容器id /bin/bash此条指令为了以最高权限进入容器。
2.在对应license目录下通过chown kingbase:kingbase license.dat以及chmod 750 license.dat赋予权限。
四、重新启动数据库
使用官方镜像的话进入到进入容器/home/kingbase/install/kingbase/bin目录下
使用./sys_ctl -D /home/kingbase/userdata/data/ start启动数据库。
如果是不知道版本用户,启动失败去看它启动报错信息,重复以上操作上传对应证书,直到成功为止。
总结
最后希望能帮助每个因为证书抓耳挠腮的程序猿,欢迎讨论不喜勿喷。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)