C - 当应用程序建立单独的tcp连接时,MySQL在查询期间失去连接

时间:2015-12-27 22:59:55

标签: mysql c database tcp nanomsg

我在我的C应用程序中使用MySQL与nanomsg一起使用。 nanomsg正在创建一些到远程服务器的tcp连接,而MySQL则连接到localhost数据库。

我从SQLite移植,并没有太多关于MySQL的经验,所以请原谅我,如果这是微不足道的。

MySQL似乎工作正常,在init上创建数据库。并插入一些记录。但是,当我在nanomsg上启动tcp连接时,我得到:

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

仍然无法工作。

非常感谢任何帮助。

0 个答案:

没有答案