《MysqL实例MysqL中一个普通ERROR 1135 (HY000)错误引发的血案》要点:
本文介绍了MysqL实例MysqL中一个普通ERROR 1135 (HY000)错误引发的血案,希望对您有用。如果有疑问,可以联系我们。
今天接到测试人员反应,测试环境前端应用程序无连接MysqL数据库,登录MysqL服务器,查看错误日志,发现有如下报错:MysqL必读
ERROR 1135 (HY000): 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 BUGMysqL必读
第一反应感觉可能是跟ulimit限制连接数有关,文件描述符不够用.接下来检查配置件 /etc/security/limits.conf 相关结果如下:MysqL必读
代码如下:#for root
root soft nofile 65535
root hard nofile 65535
# End of file
MysqL soft nproc 65536
MysqL hard nproc 65536
MysqL soft nofile 65535
MysqL hard nofile 65535
配置没有问题,MysqL的ulimit限制已经打开.MysqL必读
但是,执行如下命令:MysqL必读
代码如下:# sudo -u root bash -c " ulimit -a "
core file size (blocks,-c) 0
data seg size (kbytes,-d) unlimited
scheduling priority (-e) 0
file size (blocks,-f) unlimited
pending signals (-i) 62591
max locked memory (kbytes,-l) 64
max memory size (kbytes,-m) unlimited
open files (-n) 1024
pipe size (512 bytes,-p) 8
POSIX message queues (bytes,-q) 819200
real-time priority (-r) 0
stack size (kbytes,-s) 10240
cpu time (seconds,-t) unlimited
max user processes (-u) 1024
virtual memory (kbytes,-v) unlimited
file locks (-x) unlimited
发现max user processes值仍为1024.MysqL必读
而在Centos5里面,只须在/etc/security/limits.conf添加如下两行:
点击(此处)折叠或打开
root soft nofile 65535
root hard nofile 65535
对应的uilmit -u 就会是65535.
后来猜想centos6的用户的ulimit限制是不是还有其他的配置文件做相关的限制呢?果不其然,发现在 /etc/security/limits.d/目录下,有一个名为:90-nproc.conf的配置文件,
打开看看什么内容:
[root@fztest ~]# cat /etc/security/limits.d/90-nproc.confMysqL必读
# Default limit for number of user's processes to prevent
# accIDental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 1024
MysqL必读
而在配置文件/etc/security/limits.d/90-nproc.conf中的 “* soft nproc 1024”的意思是任何用户的最大max user processes为1024个,也就是说,系统的任何用户均不可以通过ulimit -u来修改 .真的是这样吗?我们来进行如下验证 *** 作: 代码如下:
[oracle@fztest ~]$ ulimit -u 65535
-bash: ulimit: max user processes: cannot modify limit: Operation not permitted
[root@fztest ~]# ulimit -u 65535
[root@fztest ~]# ulimit -u
65535
由以上 *** 作,可知事实上这个限制是对除root以外的普通用户进行的限制,root可以通过ulimit -u 65535来进行即时修改,只对当前会话生效.一旦重启服务器,便会失效(重新恢复max user processes -u 1024).MysqL必读
接下来,尝试通过修改这个配置文件,来验证max user processes的值是否会改变.
将/etc/security/limits.d/90-nproc.conf中的1024修改为65535后,执行如下命令:MysqL必读
[root@fztest ~]# sudo -u root bash -c " ulimit -a"
core file size (blocks,-f) unlimited
pending signals (-i) 95191
max locked memory (kbytes,-m) unlimited
open files (-n) 65535
pipe size (512 bytes,-t) unlimited
max user processes (-u) 65535
virtual memory (kbytes,-v) unlimited
file locks (-x) unlimited
由此可见,修改生效.如果不想修改/etc/security/limits.d/90-nproc.conf这个文件,也可以将此限制添加到/etc/rc.local文件中,让其开机应用生效即可.
成功修改了root用户的max user processes后,继续使用root用户启动MysqLd_safe脚本,稳定运行了一个上午,一切正常. 至此,ERROR 1135 (HY000): Can't create a new thread (errno 11)这个问题总算告以段落.
MysqL必读
以上是内存溢出为你收集整理的Mysql实例mysql中一个普通ERROR 1135 (HY000)错误引发的血案全部内容,希望文章能够帮你解决Mysql实例mysql中一个普通ERROR 1135 (HY000)错误引发的血案所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)