详解MySQL数据库资源不足的错误解决方案_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详解MySQL数据库资源不足的错误解决方案_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3384字,纯文字阅读大概需要5分钟。
内容图文
![详解MySQL数据库资源不足的错误解决方案_MySQL](/upload/InfoBanner/zyjiaocheng/570/03268b1c1ad14e13867a9090fbe40344.jpg)
工作时, 执行了一个su – mysql 的命令, 遇到了下面这样一个错误..
view sourceprint?1 [root@dbmain ~]# su - mysql
2 su: cannot set user id: Resource temporarily unavailable
这是一个Shell中由于资源不足引起的问题, 当时下意识的先运行ulimit,看看ulimit的基本限制.
view sourceprint?01 [root@dbmain ~]# ulimit -a
02 core file size (blocks, -c) 0
03 data seg size (kbytes, -d) unlimited
04 scheduling priority (-e) 0
05 file size (blocks, -f) unlimited
06 pending signals (-i) 25600
07 max locked memory (kbytes, -l) 32
08 max memory size (kbytes, -m) unlimited
09 open files (-n) 1024
10 pipe size (512 bytes, -p) 8
11 POSIX message queues (bytes, -q) 819200
12 real-time priority (-r) 0
13 stack size (kbytes, -s) 10240
14 cpu time (seconds, -t) unlimited
15 max user processes (-u) 25600
16 virtual memory (kbytes, -v) unlimited
17 file locks (-x) unlimited
又看了看,/etc/security/limits.conf
view sourceprint?01 oracle soft nproc 2047
02 oracle hard nproc 16384
03 oracle soft nofile 1024
04 oracle hard nofile 65536
05 oracle soft memlock 12582912
06 oracle hard memlock 12582912
07
08 grid soft nproc 2047
09 grid hard nproc 16384
10 grid soft nofile 1024
11 grid hard nofile 65536
12 grid soft memlock 12582912
13 grid hard memlock 12582912
14
15 mysql soft nproc 500
16 mysql hard nproc 500
17 mysql soft nofile 1024
18 mysql hard nofile 65536
19 mysql soft memlock 12582912
20 mysql hard memlock 12582912
经过分析,怀疑也只有process/file这两个出现资源紧张的概率比较大.. 因此就先ps -ef 看系统中该用户的进程数量..
view sourceprint?1 [root@dbmain ~]# ps -ef | grep mysql
2 root 4733 1 0 10:30 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/dbmain.pid
3 mysql 4788 4733 0 10:30 ? 00:00:04 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/dbmain.err --pid-file=/var/lib/mysql/dbmain.pid
4 root 15171 17507 0 13:26 pts/2 00:00:00 mysql -uroot -p
5 root 20792 17163 0 15:30 pts/1 00:00:00 grep mysql
从这个输出,,我们暂时排除nproc超标的可能性.
由此, 就根据此进程的pid进入其proc目录查看当前打开的文件数量..
发现有大量socket的文件连接.. 但是其数量远远未达到文件数的限制, 由此怀疑可能是MySQL的线程也会消耗掉Linux系统的nproc基数, 因此尝试调整/etc/security/limits.conf文件的nproc参数的值.
发现调整过后, su – mysql 确实可以成功执行了,,后面又将此参数改回, 重新执行su – mysql,,此问题又再次重现..由此确认,,使用MySQL的系统, 在设置MySQL的参数max_connections之外, 还需要考虑设置/etc/security/limits.conf文件的大小, MySQL是线程模式执行的, 其线程数也会被统计在nproc中, 这可能掩盖或造成对此问题的误判..
内容总结
以上是互联网集市为您收集整理的详解MySQL数据库资源不足的错误解决方案_MySQL全部内容,希望文章能够帮你解决详解MySQL数据库资源不足的错误解决方案_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。