重复的mysql_init导致日志Can't create a new thread (errno 11)

程序在运行时遇到MySQL错误,日志显示'Can't create a new thread (errno 11)',怀疑是由于重复调用mysql_init导致资源耗尽。代码审查发现可能的问题在于mysql_real_connect的重复尝试。解决方案是将初始化部分移出循环,确保只初始化一次。已经进行此修改并观察到正常运行,但还需进一步排查确认。另外,讨论了ulimit设置和mysql_close的正确使用,以排除其他可能原因。
摘要由CSDN通过智能技术生成

日志内容形如:E1113 11:08:27.761541 19599 ServiceKV_server.skeleton.cpp:258] MYSQL ERROR: Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug




今天发现程序error.log日志报mysql出错,大概报的是mysql资源已用尽,创建不了新的线程,

查看了下程序代码逻辑如下, 初步定为mysql_real_connet问题,但这个需要使用mysql句柄所以可能与句柄mysql有关,


bool InitStorage() {
                        mysql_init(&mysql);   ///   1
                        mysql_options(&mysql, MYSQL_SET_CHARSET_NAME,"UTF8");/   2
                        char * ret_conn = (char*)mysql_real_connect(&mysql, \                 
                                        FLAGS_mysql_host.c_str(), \                           //ServiceKV_server.skeleton.cpp:258
                                        FLAGS_mysql_user.c_str(), \

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值