项目需要,头一次接触人大金仓(友情提示,可以使用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();