0

次の例外があります

Mysql Caught Exception = UNIX ソケットを作成できません (24)。

UNIX システム エラー 24 は知っています。それは「開いているファイルが多すぎます」です。

この質問を参照しました: OperationalError: (2001, "UNIX ソケット (24) を作成できません")

しかし、正確な問題を理解する必要があります。私のコードでは、間に free_result メソッドを使用せずに、複数の選択クエリを実行して結果を保存します。

このエラーの場合でしょうか : UNIX ソケットを作成できません (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 サーバーへの同時接続が多すぎる可能性があります。使用可能な FD を mysql プロセスに増やす必要があります。/etc/security/limits*通常、Linux ディストリビューションでこれを行うことができます。この質問を見ることもできます: Mysql は開いているファイルを減らします

于 2013-07-31T14:11:26.677 に答える