记一次mysql问题

今天生产上遇到了一个问题,没遇见过,所以记录一下

  • 系统:SUSE 12
    在系统命令行,使用mysql -u-p的命令登录,报以下错误:
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 bug。

不仅仅是在本地数据库服务器上报这个错误,从其他服务器远程连接依旧如此,就连Navicat都无法连接,且数据库无法停掉,只能通过kill强杀的办法。
之后在一个国外连接上看到了类似问题:直达链接 下面写出具体解决步骤。

  • 首先先看报错,大致可以判断是系统限制了mysql数据库的连接,可通过以下命令检查是不是分配的系统资源较少。
  ulimit -a
  cat /proc/`pidof mysqld`/limits | egrep "(processes|files)" 

如果都没问题,执行systemctl status mysql查看mysql的运行状态,找到TASKS一行,会发现两个数字,其中括号外是已经运行的线程数量,括号内是所允许的最大数量,默认(512),应将512配置大或者无限制。
修改方法:进入system.conf到包含DefaultTasksMax的行,将他的值修改为DefaultTasksMax=infinity(如被注释应打开注释),修改完成后保存,并执行 systemctl daemon-reexec 重新加载此文件,

[root@180-234 app]# vim  /etc/systemd/system.conf
修改完成后,执行下方命令保存重新加载
systemctl daemon-reexec

修改黄色字段
操作完以上步骤后,重启mysql 后,在查看一下TASTS行,发现括号内数字消失,此时为不限制数量。 命令行登录,发现可以登陆了,问题解决。

发布了37 篇原创文章 · 获赞 83 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/tootsy_you/article/details/95635403