在皕杰报表使用数据源的时候,超过数据库最大连接数导致访问不成功。如何修改常用数据库的的最大连接数?
这实际上是数据库本身的设置,下面仅就oracle、MySQL、sqlserver加以说明。
1. oracle
链接信息
SELECT * FROM v$session;
主要字段含义:
Username:连接用户名
Program:应用程序名
machine:机器名
Osuser:操作系统用户
logon_time:登录时间
STATUS:session状态( Achtive:正执行SQL语句,Inactive:等待操作.Killed:被标注为删除)
连接总数
SELECT COUNT (*) FROM v$session;
正在执行sql语句的连接数
SELECT COUNT (*) FROM v$session where status = 'ACTIVE';
某用户的连接数
SELECT COUNT (*) FROM v$session where status = 'ACTIVE' AND username = 'xxxx';
查看允许的最大链接数
select value from v$parameter where name = 'processes';
修改最大连接数
alter system set processes = 300 scope = spfile;
2. Mysql
查看mysql的最大连接数:
show variables like '%max_connections%';
查看服务器响应的最大连接数:
show global status like 'Max_used_connections';
修改最大连接数
set GLOBAL max_connections=256;
方法2
修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
max_connections=256
重启mysql服务即可。
Mysql5.5 mysql5.6 mysql5.7:默认的最大连接数都是151,上限为:100000
Mysql5.0版本:默认的最大连接数为100,上限为16384
3. Sqlserver
查询最大连接数
SELECT value_in_use
FROM sys.configurations c
WHERE c.name = 'user connections';
默认值为:0,即无限制。
查询当前连接数
select count(distinct(login_time)) from sys.sysprocesses
设置最大连接数
exec sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OVERRIDE
GO
exec sp_configure 'user connections', 300
GO
RECONFIGURE WITH OVERRIDE
GO
设置过后需要重启数据库才会生效。