⑴ 数据库等待连接超时问题
用连接池,超过最大空闲时间,会自动收回到池子里,等待调用
⑵ oracle数据库连接请求超时怎么办
首先,你要确认你是在什么情况下访问数据库
1:本地访问
2:外网访问
第一种访问超时,需要查看是否定义了链接选项
打开oracle的tnsnames.ora文件(自己文件搜索,不同版本地址不同)
sql">myorcl=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=orcl)
)
)
查看有没有如上语句,如果有,你就可以访问myorcl这个链接项了
第二种要确保在第一种的情况下,还需要修改外网访问权限
将数据库的监听从locahost改成ip地址形式(数据库安装默认是locahost)
至于修改方式也是打开tnsnames.ora文件,有一行代码里面有locahost
LISTENER_ORCL=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))//WIN..原为localhost
⑶ 数据库连接超时的问题
超时设置增加
Connect
Timeout=30
30的单位是秒
⑷ mysql数据库连接超时怎么办
mysql 运行时就会报连接超时
⑸ sql 数据库连接超时
原因分析:
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。
另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。
而造成超出估计值那么多的原因有两种可能:
一是估计时间不准确;
二是sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。
解决办法:
A.优化语句,创建/使用合适的索引;
B.解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名;
C.增加内存
如果想手动设置查询超时,可以使用以下语句:
sp_configure 'show advanced options', 1 GO RECONFIGURE GO sp_configure 'query wait', 2147483647 GO RECONFIGURE GO
⑹ 如何解决访问sql数据库超时问题
adoconnection1.CommandTimeout = 0命令执行超时时间(以秒为单位),设置为零说明无限制adoconnection1.ConnectionTimeout = 0连接数据库超时时间(以秒为单位),设置为零说明无限制
⑺ 为什么数据库连接超时
老大.你那数据量太大了...这个要是想不超时的话.得从系统结构上重新考虑...尽可能重新有效的规划你要查的表的PK.并在查询中利用PK做查询的条件开头~~~否则你的数据量太大....IO要花很久的.有可能的话尽量要把磁盘的性能提升上来.RAID5...表内一行的数据量尽可能控制在比较小的尺寸..不行的话就考虑水平(分区表)或是垂直对表进行划分.用PK关联
⑻ mysql数据库响应超时怎么办
MYSQL_OPT_READ_TIMEOUT 是 MySQL c api 客户端中用来设置读取超时时间的参数。在 MySQL 的官方文档中,该参数的描述是这样的:
MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *)The timeout in seconds for each attempt to read from the server. There are retries if necessary, so the total effective timeout value is three times the option value. You can set the value so that a lost connection can be detected earlier than the TCP/IPClose_Wait_Timeout value of 10 minutes.
也就是说在需要的时候,实际的超时时间会是设定值的 3 倍。但是实际测试后发现实际的超时时间和设置的超时时间一致。
而具体什么时候发生三倍超时,在文档中没有找到。所以对 MySQL 5.7.20 的源码进行了一些分析。
使用 GDB 调试代码找了实际与 mysql server 通信的代码,如下:
其中 vio_read() 函数中,使用 recv 和 poll 来读取报文和做读取超时。net_should_retry() 函数只有在发生 EINTR 时才会返回 true。从这段代码来看是符合测试结果的,并没有对读取进行三次重试。只有在读取操作被系统中断打断时才会重试,但是这个重试并没有次数限制。
从上面代码的分析可以看出,代码的逻辑和文档的描述不符。于是在一顿搜索后,找到了一个 MySQL 的 BUG(Bug #31163)。该 BUG 报告了在MySQL5.0 中,MySQL c api 读取的实际超时时间是设置的三倍,与现有文档描述相符。于是对 MySQL 5.0.96 的代码又进行分析。
同样使用 GDB 找到了通信部分的代码。这次找到了重试三次的代码,如下:
这个版本的 MySQL api 的读写超时是直接使用的 setsockopt 设置的。第一次循环,在 A 点发生了第一次超时(虽然注释写的非阻塞,但是客户端的连接始终是阻塞模式的)。然后在 B 点将该 socket 设置为阻塞模式,C 点这里重置 retry 次数。由于设置了 alarm 第二次以后的循环会直接进入 D 点的这个分支,并且判断循环次数。作为客户端时net->retry_count 始终是 1,所以重试了两次,共计进行了 3 次 vioread 后从 E 点退出函数。
由上面的分析可知,MySQL 文档对于该参数的描述已经过时,现在的 MYSQL_OPT_READ_TIMEOUT 并不会出现三倍超时的问题。而 Bug #31163 中的处理结果也是将文档中该参数的描述更新为实际读取超时时间是设定时间的三倍。也许是 MySQL 的维护者们在后续版本更新时忘记更新文档吧。
⑼ 怎样配置MySQL数据库超时设置
mysql命令
查看mysql server超时时间:
msyql> show global variables like '%timeout%';
设置mysql server超时时间(以秒为单位):
msyql> set global wait_timeout=10;
msyql> set global interactive_timeout=10;
⑽ 在ACCESS数据库中超时怎么设置啊
这个必须是你自己在网页程序中或者是查询程序中自己设置的,可以用
DateDiff("d", Now, TheDate) 得到差值,然后比较判断
"d", 时间差按 天 计算,也可以用 M 月 Y 年
Now, 现在的时间
TheDate 需要对比的日期
还有啊,这个是 VB 的命令,别在 C 中用啊,用不了的。