MySQL сервер ушел Ошибка при выборе строк из таблицы - PullRequest
0 голосов
/ 16 июля 2009

При использовании программы на C с Mysql C API, подключенной к базе данных, и инициация прошла успешно, но попытался выполнить операции SELECT, INSERT выдает ошибку "Сервер MySQL исчез" VPS Server, но то же самое отлично работает локально.

Версия Mysql Server VPS Server : 5.0.81-сообщество MySQL сообщество Издание (GPL). значение времени ожидания: 28800

Версия Mysql Server для локальной машины : 5.0.77 Исходное распределение.

Но доступ к той же базе данных с помощью Php работает нормально, без каких-либо проблем (локально и с vps-сервера) только при вызове с использованием Mysql C API. int fetch_information_from_tbl() { MYSQL_RES *result; MYSQL_ROW row; char query_def1[100]; unsigned int num_fields; int tblid; /***EDITED FOR MORE INFORMATION START ***/ // Tried to ping and set reconnection still the same error /* try a ping */ if (mysql_ping(mysql)) { fprintf(stderr, "Cannot ping database: Error: %s\n",mysql_error(mysql)); } my_bool reconnect = 0; if(mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect)){ fprintf(stderr, "Mysql Option Error: %s\n",mysql_error(mysql)); } /***EDITED FOR MORE INFORMATION ENDS***/ sprintf(query_def1, "SELECT tblid FROM test_table"); if (mysql_query(mysql, query_def1)) { fprintf(stderr, "%s\n", mysql_error(mysql)); exit(1); } result = mysql_store_result(mysql); num_fields = mysql_num_fields(result); row = mysql_fetch_row(result); if (row) { tblid = atoi(row[0]); printf("Fetched Table ID is: %d\n",tblid) } } Это правильный способ выполнить запрос mysql, подобный этому, или предложить лучший способ сделать это? И что будет в случае этой ошибки, которая возникает при выполнении SELECT OPERATION? Заранее спасибо.

1 Ответ

1 голос
/ 16 июля 2009

Вам нужно использовать mysql_ping, чтобы проверить, установлено ли ваше соединение. Пожалуйста, проверьте mysql время простоя вашего сервера mysql. Если в этот конкретный период между клиентом и сервером нет активности, сервер закрывает соединение. Вы можете либо изменить это, либо использовать mysql_ping для восстановления вашего соединения.

В случае с php, я думаю, он подключается к серверу для каждого запроса и отключается одинаково.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...