0

我有以下异常

Mysql Caught Exception = 无法创建 UNIX 套接字 (24)。

我知道UNIX系统错误24。那是“打开的文件太多”。

我提到了这个问题:OperationalError: (2001, "Can't create UNIX socket (24)")

但我需要了解确切的问题。在我的代码中,我执行多个选择查询并存储结果,而不是在两者之间使用 free_result 方法。

会不会是这个错误的情况:Can't create UNIX socket (24)

这是我的代码:

    pthread_mutex_lock(&mysqlMutex);
    mysql = mysql_init(NULL);
    my_bool reconnect = 1;
    MYSQL* connection;
    mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
    connection = mysql_real_connect( server,user,password, database_name, 0, NULL, 0 );
    if(connection == NULL)
    {
             //Connection failed.Exception Handling
    }
    //Execute query  :SELECT * from user ;
    mysql_query(mysql, getuser_query); 

     MYSQL_RES *mysql_res = mysql_store_result(mysql);

    // Query # 2
    // SELECT * from usergroup.
    mysql_query(m_pMysql, userGroup_query);
     mysql_res = mysql_store_result(mysql);
    // Query # 3
    // Query # 4

最后:

    //free mysql memory
    mysql_free_result(mysql_res);
    mysql_close(mysql);
    pthread_mutex_unlock(&mysqlMutex);
4

1 回答 1

1

您可能同时打开了太多与 mysql 服务器的连接。您需要为 mysql 进程增加可用的 FD。你通常可以/etc/security/limits*在你的 linux 发行版中这样做。你也可以看看这个问题:Mysql reduce opens files

于 2013-07-31T14:11:26.677 回答