2010-11-22 117 views
1

问候,我有一个无限期运行的C++脚本。有时(很少),MySQL连接丢失,所以如果发生这种情况,我想实现一些逻辑来重新连接。我知道这很容易,但我只是想确保它是正确的,因为我是C++的新手。在循环中检查MySQL连接

这是怎么建立连接:

const char* mysql_server  = argv[argcounter++]; 
    const char* mysql_database  = argv[argcounter++]; 
    const char* mysql_user   = argv[argcounter++]; 
    const char* mysql_password  = argv[argcounter++]; 

    mysql_conn = mysql_init(NULL); 

    // connect to database 
    if (!mysql_real_connect(mysql_conn, mysql_server, 
     mysql_user, mysql_password, mysql_database, 0, NULL, 0)) 
    { 
    fprintf(stderr, "%s\n", mysql_error(mysql_conn)); 
    exit(1); 
    } 

我不知道如何检查,如果连接不再存在。循环每1500秒运行一次。

谢谢

回答

1

为什么不使用mysql_options的MYSQL重新连接选项?

http://dev.mysql.com/doc/refman/5.0/en/mysql-options.html): -

“MYSQL_OPT_RECONNECT(参数类型:my_bool *)

启用或如果发现连接已经丢失禁用自动重新连接到服务器重新连接已默认情况下被关闭。因为MySQL 5.0.3;这个选项在5.0.13中是新的,并且提供了一种明确设置重新连接行为的方法。“

+0

有用的链接在这里:https://dev.mysql.com/doc/refman/5.0/en/auto-reconnect.html – JavaRunner 2014-02-14 16:35:46