在使用mysql_real_connect时,发现一个问题:如果连接一个网段在公司内网中的不存在IP时,mysql_rael_connect将会在约20秒后返回连接失败
如果连接一个网段在外网中的不存在IP时,mysql_real_connect将挂住,即使超过10分钟也不返回(即使使用mysql_options设置MYSQL_OPT_CONNECT_TIMEOUT也无效)测试的版本为5.0.95,比较老了
OS: SUSE Linux 3.0.13但使用5.5.28版本在Windows上测试时,
不论是不存在的IP是内网还是外网,mysql_real_connect都将在约20秒左右返回连接失败
请教大牛,是否这个问题与MySQL版本有关?查看过mysql_real_connect及其内部调用的相关函数代码,5.0.95和5.5.28没太看出来什么大的差别
如果连接一个网段在外网中的不存在IP时,mysql_real_connect将挂住,即使超过10分钟也不返回(即使使用mysql_options设置MYSQL_OPT_CONNECT_TIMEOUT也无效)测试的版本为5.0.95,比较老了
OS: SUSE Linux 3.0.13但使用5.5.28版本在Windows上测试时,
不论是不存在的IP是内网还是外网,mysql_real_connect都将在约20秒左右返回连接失败
请教大牛,是否这个问题与MySQL版本有关?查看过mysql_real_connect及其内部调用的相关函数代码,5.0.95和5.5.28没太看出来什么大的差别
解决方案 »
- MYSQL UNIX_TIMESTAMP 不支持 April 2010和April 2010 01,怎么转成时间戳
- Mysql数据库设计,请大家帮帮忙。
- mysql一个多步操作涉及多个表,要求如果有一步不成功就撤销全部操作,该如何实现?
- mysql 触发器
- Mysql全文搜索为何实现不了?连英文都不成功。。。一旦解决立马给分
- 怎样不让默认用户进入mysql呢? 直接打mysql就可以进去了.
- 求一sql语句,查询a字段,某个值出现两次,就更新当条值的另一个字段
- mysql 删除多个图片路径中的 某一个路径?
- MySQL批处理使用问题
- mysql查询极慢以及锁表问题
- 很简单的Mysql问题条件查询
- Eclipse+Mysql下开发,如何根据数据库中的一张表的内容生成数据库中的另一张表,求大虾帮帮忙,万分感谢!!!
你可以用telnet <IP> <端口号>来模拟一下。
顺便追问一个问题:为什么通过mysql_options设置MYSQL_OPT_CONNECT_TIMEOUT选项也仍然不能改变上述问题? 例如设置连接超时为10秒,实际情况仍然会超过10分钟?看过mysql官网关于设置MYSQL_OPT_CONNECT_TIMEOUT无效这个问题的一些说法,但是最后的不了了之
试了一下,确实没什么效果,Windows和Linux 5.0.95和5.5.28都不起效
试了一下, 这个现象和telnet测试的结果比较符合,如果telnet IP 3306 出现超时的,用mysql_real_connect连接都有这个问题。但是如果telnet IP 3306被立即拒绝的,用mysql_real_connect也会在较短的时间内返回
//设置连接等待时间,这里设置的是20秒
int ml_outtime = 20;
mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, &ml_outtime);//设置如果连接失败 不自动连接
bool ml_false = false;
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &ml_false);