mysql中一個(gè)普通ERROR 1135 (HY000)錯(cuò)誤引發(fā)的血案
今天接到測(cè)試人員反應(yīng),測(cè)試環(huán)境前端應(yīng)用程序無連接mysql數(shù)據(jù)庫(kù),登錄mysql服務(wù)器,查看錯(cuò)誤日志,發(fā)現(xiàn)有如下報(bào)錯(cuò):
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
第一反應(yīng)感覺可能是跟ulimit限制連接數(shù)有關(guān),文件描述符不夠用。接下來檢查配置件 /etc/security/limits.conf 相關(guān)結(jié)果如下:
#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限制已經(jīng)打開。
但是,執(zhí)行如下命令:
# 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
發(fā)現(xiàn)max user processes值仍為1024.
而在Centos5里面,只須在/etc/security/limits.conf添加如下兩行:
點(diǎn)擊(此處)折疊或打開
root soft nofile 65535
root hard nofile 65535
對(duì)應(yīng)的uilmit -u 就會(huì)是65535.
后來猜想centos6的用戶的ulimit限制是不是還有其他的配置文件做相關(guān)的限制呢?果不其然,發(fā)現(xiàn)在 /etc/security/limits.d/目錄下,有一個(gè)名為:90-nproc.conf的配置文件,
打開看看什么內(nèi)容:
[root@fztest ~]# cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 1024
而在配置文件/etc/security/limits.d/90-nproc.conf中的 “* soft nproc 1024”的意思是任何用戶的最大max user processes為1024個(gè),也就是說,系統(tǒng)的任何用戶均不可以通過ulimit -u來修改 。真的是這樣嗎?我們來進(jìn)行如下驗(yàn)證操作:
[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
由以上操作,可知事實(shí)上這個(gè)限制是對(duì)除root以外的普通用戶進(jìn)行的限制,root可以通過ulimit -u 65535來進(jìn)行即時(shí)修改,只對(duì)當(dāng)前會(huì)話生效。一旦重啟服務(wù)器,便會(huì)失效(重新恢復(fù)max user processes -u 1024)。
接下來,嘗試通過修改這個(gè)配置文件,來驗(yàn)證max user processes的值是否會(huì)改變。
將/etc/security/limits.d/90-nproc.conf中的1024修改為65535后,執(zhí)行如下命令:
[root@fztest ~]# 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) 95191
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
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) 65535
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
由此可見,修改生效。如果不想修改/etc/security/limits.d/90-nproc.conf這個(gè)文件,也可以將此限制添加到/etc/rc.local文件中,讓其開機(jī)應(yīng)用生效即可。
成功修改了root用戶的max user processes后,繼續(xù)使用root用戶啟動(dòng)mysqld_safe腳本,穩(wěn)定運(yùn)行了一個(gè)上午,一切正常。 至此,ERROR 1135 (HY000): Can't create a new thread (errno 11)這個(gè)問題總算告以段落。
- MySQL的主從復(fù)制步驟詳解及常見錯(cuò)誤解決方法
- 安裝Mysql時(shí)出現(xiàn)錯(cuò)誤及解決辦法
- PHP錯(cuò)誤Warning:mysql_query()解決方法
- 分享一下Mysql常見的幾個(gè)錯(cuò)誤問題及解決方法
- MySQL下PID文件丟失的相關(guān)錯(cuò)誤的解決方法
- MySQL導(dǎo)入sql腳本錯(cuò)誤:2006 解決方法
- 關(guān)于MySQL中savepoint語(yǔ)句使用時(shí)所出現(xiàn)的錯(cuò)誤
- MySQL錯(cuò)誤ERROR 1615 解決方法
- MySQL錯(cuò)誤Forcing close of thread的兩種解決方法
- MySQL命令行界面中出現(xiàn)字符錯(cuò)誤提示的原因及解決方法
相關(guān)文章
mysql SKIP-NAME-RESOLVE 錯(cuò)誤的使用時(shí)機(jī)造成用戶權(quán)限
新加的一臺(tái)服務(wù)器,連接內(nèi)網(wǎng)中的一臺(tái)mysql服務(wù)器的時(shí)候,經(jīng)常出現(xiàn)超時(shí)。2011-06-06
vscode安裝mysql相關(guān)插件的詳細(xì)步驟
這篇文章主要給大家介紹了關(guān)于vscode安裝mysql相關(guān)插件的詳細(xì)步驟,這將幫助你更高效地管理數(shù)據(jù)庫(kù)操作,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
MySQL中一條查詢SQL語(yǔ)句的完整執(zhí)行流程
通常我們?cè)谑褂肕ySQL時(shí),我們看到的只是輸入一條語(yǔ)句,返回一個(gè)結(jié)果,卻不知道這條語(yǔ)句在MySQL內(nèi)部的執(zhí)行過程,這篇文章主要給大家介紹了關(guān)于MySQL中一條查詢SQL語(yǔ)句的完整執(zhí)行流程,需要的朋友可以參考下2024-05-05
高效數(shù)據(jù)流轉(zhuǎn):Mycat分庫(kù)分表與GreatSQL實(shí)時(shí)同步
聚焦數(shù)據(jù)庫(kù)擴(kuò)容與實(shí)時(shí)數(shù)據(jù)同步,探索MyCat分庫(kù)分表與GreatSQL的強(qiáng)大結(jié)合!想在大規(guī)模數(shù)據(jù)處理中游刃有余?本指南將帶你輕松掌握MyCat的分布式解決方案和GreatSQL的實(shí)時(shí)同步機(jī)制,讓高效、穩(wěn)定的數(shù)據(jù)庫(kù)管理觸手可及,一起揭開高并發(fā)環(huán)境下數(shù)據(jù)庫(kù)優(yōu)化的神秘面紗吧!2024-01-01
Mysql報(bào)Table?'mysql.user'?doesn't?exist問題的解
這篇文章主要給大家介紹了關(guān)于Mysql報(bào)Table?'mysql.user'?doesn't?exist問題的解決方法,初學(xué)者可能會(huì)遇到這個(gè)問題,文中通過圖文將解決方法介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Slave memory leak and trigger oom-killer
這篇文章主要介紹了Slave memory leak and trigger oom-killer,需要的朋友可以參考下2016-07-07
MySQL數(shù)據(jù)庫(kù)操作常用命令小結(jié)
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)操作常用命令小結(jié),例如創(chuàng)建數(shù)據(jù)庫(kù)、使用數(shù)據(jù)庫(kù)、查看數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)編碼操作等命令講解,需要的朋友可以參考下2014-12-12
MySQL 數(shù)據(jù)庫(kù)鎖的實(shí)現(xiàn)
本文主要介紹了MySQL 數(shù)據(jù)庫(kù)鎖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

