项目需要,头一次接触人大金仓(友情提示,可以使用navicat连接哟)。

使用连接工具报“对不起,已经有太多的客户”错误,java程序也是如此,

找到数据库的kingbase.conf配置文件修改max_connections属性,重启。

ok了。。。。。。。。。。。。。。。。。。。个锤子,

这是理想情况。

不理想情况:

重启后最大连接还是10

原因:人大金库的授权文件为开发版,最大连接数是10,只能往小了改,不能往大改,通过 cat /***/data/sys_log/startup.log for details 日志可以看到,当你许可证是开发版并且连接数大于10时,直接给你改回10,就很恶心

解决办法:需要去官网下载企业版的授权文件替换才行(下载路径:https://www.kingbase.com.cn/sqwjxz/index.htm )

替换授权文件的坑(改了半天,网上的资料是真的坑,都是垃圾)

将新的授权文件上传服务器

在数据库找到license.dat文件位置,进行备份,并将新的授权文件移动到该目录下

重点来了(并不是直接重启就生效的)

致命三连 

chown -R kingbase:kingbase license.dat 

chmod 751 license.dat

进入到bin目录下

./sys_ctl -D /***/data reload

然后重启就好了。

可以通过select get_license_validdays(); 通过查询授权文件到期时间来判断是否上了新的授权文件。

有问题请留意。

 

相关命令:

进入命令行:在bin目录下 ./ksql -p 54321 -U system test 后输入密码

停止数据库 service kingbase8d stop
启动数据库 service kingbase8d start
重启数据库 service kingbase8d restart
查看数据库服务状态 service kingbase8d status

相关sql:

-- 查看最大并发连接量
show max_connections;
-- 查看当前连接数
select connections();
-- 查看连接详情
select * from sys_stat_activity;
-- 关闭空闲连接
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state='idle';
--查询license有效期
select GET_LICENSE_VALIDDAYS();