请问 只用mysql CAPI 如何设置 mysql_real_connect连接超时时间。
我这样
MYSQL *conn = mysql_init (&mysql);
int ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk");
unsigned int timeout = 1;
ret = mysql_options(&mysql,MYSQL_OPT_CONNECT_TIMEOUT,&timeout);
if(!mysql_real_connect(&mysql,"192.168.123.234","root","root","webautohome",3306,NULL,0))
{
AfxMessageBox("数据库连接失败");
return FALSE;
}是没有效果的,大约20秒,连接不到才会提示。
我这样
MYSQL *conn = mysql_init (&mysql);
int ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk");
unsigned int timeout = 1;
ret = mysql_options(&mysql,MYSQL_OPT_CONNECT_TIMEOUT,&timeout);
if(!mysql_real_connect(&mysql,"192.168.123.234","root","root","webautohome",3306,NULL,0))
{
AfxMessageBox("数据库连接失败");
return FALSE;
}是没有效果的,大约20秒,连接不到才会提示。
我看网上都说用这个函数设置超时时间。你把timeout再设置大一些呢?比如10秒,是否有效果?
unsigned int timeout = 1;
ret = mysql_options(&mysql,MYSQL_OPT_CONNECT_TIMEOUT,&timeout);
=============为什么两个mysql_options的第一个参数不一样呢???
应该是一样的吧
也是在 mysql_real_connect 返回出错。
进入 mysql 后执行 use dbname ,发现要20秒才出现Database changed。
这种情况让我误认为是mysql_real_connect 链接mysql因为超时而出错。
后面将mysql error打印出来后才清楚,原来是客户端的mysql版本过低导致的...