MySQL出现Can't create a new thread (errno 11); 的解决办法

早上更新程序到新的服务器上,在导入MySQL数据

Line no.:0
Error Code: 1135 - 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
Query:
Unable to establish connection

查了一下资料,原来是Linux操作系统设置的连接数太小的原因,可以直接使用 ulimit -u 命令查看系统的max user processes,也可以使用 ulimit -a 命令查看所有的。

这个时候突然想到之前的两篇文章 CentOS安装之后的系统安全配置Linux初始安装之后配置脚本,里面在“防止DoS攻击”的配置中,在 /etc/security/limits.conf 文件中设置了 * hard nproc 20 ,这个设置将系统的最大进程限制到了20个,所以应该将参数的值设置大一些,也可以单独设置mysql的进程数:

[root@localhost ~] # vim /etc/security/limits.conf
# 可以单独设置mysql的进程数
mysql hard nproc 2048
# 也可以将进程数设置为大于my.cnf配置文件中的max_connections的值
* hard nproc 2048

退出当前的session然后重新登录就可以生效了。

参考资料:
Can't create a new thread (errno 11) 解决办法 mysql无法连接
CentOS ulimit系统命令修改
mysql启动的四种方式

发表评论

电子邮件地址不会被公开。 必填项已用*标注