我在我的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
仍然无法工作。
非常感谢任何帮助。