MySQL сервер ушел - не могу это исправить - PullRequest
1 голос
/ 12 мая 2011

Я пытаюсь написать программу на C, используя MYSQL C API. У меня все работает, кроме недавно, я получаю сообщение об ошибке при попытке подключиться к серверу. Независимо от того, к какому серверу я подключаюсь, он продолжает давать мне сообщение: «MySQL сервер исчез». Моя цель в основном получить доступ к внешнему серверу и получить некоторые данные. Вот код, который у меня есть:

conn = mysql_init(NULL);

/* Connect to database */
if (!mysql_real_connect(conn, server,
     user, password, database, 0, NULL, 0)) {
    printf("%s",mysql_stat(conn));
    fprintf(stderr, "%s\n", mysql_error(conn));
} else {
    printf("works");
}

/* send SQL query */
if (mysql_query(conn, "show tables")) {
  fprintf(stderr, "%s\n", mysql_error(conn));
}

res = mysql_use_result(conn);

/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
  printf("%s \n", row[0]);

/* close connection */
mysql_free_result(res);
mysql_close(conn);
}

1 Ответ

1 голос
/ 17 февраля 2014

Я знаю, что это старый вопрос, но я только что натолкнулся на него сейчас, и я хотел оставить ответ тем, кто может нуждаться в нем в будущем.

Если вы получаете сообщение об ошибке «Сервер MySQL пропал», это означает, что клиент потерял соединение с MySQL. Возможно, сервер MySQL был выключен, или, скорее всего, по прошествии определенного времени не было активности, и сервер закрыл соединение. Прочитайте эту страницу документации MySQL, чтобы лучше понять ошибку: dev.mysql.com / doc / refman / 5.7 / en / away-away.html

Попробуйте установить для параметра MYSQL_OPT_RECONNECT значение 1 и посмотрите, решит ли это проблему. Когда установлено, клиент будет пытаться автоматически переподключиться, и это должно решить проблему, если это закрытое / тайм-аут соединение. Соответствующие документы см .: dev.mysql.com / doc / refman / 5.7 / ru / auto-reconnect.html . Имейте в виду, что выполняется только одна попытка повторного подключения; Запрос по-прежнему может завершиться ошибкой, если сервер недоступен или недоступен.

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