我得到以下異常Mysql Error =無法創建UNIX套接字(24)
Mysql Caught Exception =無法創建UNIX套接字(24)。
我知道UNIX系統錯誤24.這是「打開的文件過多」。
我refered這個問題,:OperationalError: (2001, "Can't create UNIX socket (24)")
但是我需要了解確切的問題。 在我的代碼中,我執行多個select查詢並存儲結果,而不是在兩者之間使用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);
我也滿足了這個問題,首先,我跟着akostadinov答案以增加可用的防衛和安全降低MySQL open_table_cache和max_connections.But它似乎,它仍然發生經過漫長再寄一次思考我的代碼可能有其他問題,並且我printf FDs,我發現返回的FD是增加的。所以我認爲它可能不會關閉FD。所以我建議你看看是否有其他人不關閉FD。 – Donny