C - MySQL теряет соединение во время запроса, когда приложение устанавливает отдельное соединение TCP
Я использую MySQL в сочетании с nanomsg в моем C-приложении. Nanomsg создает некоторые TCP-соединения с удаленными серверами, в то время как MySQL подключается к базе данных localhost.
Я портирую с SQLite, и у меня нет такого большого опыта работы с MySQL, поэтому, пожалуйста, извините, если это тривиально.
MySQL, кажется, работает нормально, создавая базу данных по init. и вставив некоторые записи. Однако, когда я запускаю соединение tcp на nanomsg, я получаю:
Lost connection to MySQL server during query
MySQL server has gone away
Если я не создаю поток, который опрашивает мое удаленное TCP-соединение, он все равно делает это. Вот что заставляет MySQL терять соединение:
const char *endpoint = "tcp://xx.xxx.xxx.xx:3000";
int timeout = 5;
int sock = nn_socket (AF_SP, NN_PAIR);
assert (sock >= 0);
assert (nn_connect (sock, endpoint) >= 0);
assert (nn_setsockopt (sock, NN_SOL_SOCKET, NN_RCVTIMEO, &to, sizeof (to)) >= 0);
assert (nn_setsockopt (sock, NN_SOL_SOCKET, NN_SNDTIMEO, &to, sizeof (to)) >= 0);
Я пытался увеличить тайм-аут чтения в MySQL, но это не сработало.
int MYSQlTimeout = 6000;
mysql_options(mysqldb,MYSQL_OPT_READ_TIMEOUT,&MYSQlTimeout);
Я также попытался добавить mysqld в /etc/hosts.allow mysqld: 127.0.0.1
Все еще не работает.
Любая помощь будет принята с благодарностью.