2010-11-22 2 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 для mysql_options?

С 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

Смежные вопросы