Mysql Error Code : 1436 Thread stack overrun
ERRNO: 256
TEXT: SQLSTATE[HY000]: General error: 1436 Thread stack overrun: 4904 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.
Aording to the MySQL manual “The default (192KB) is large enough for normal operation. If the thread stack size is too small, it limits the plexity of the SQL statements that the server can handle, the recursion depth of stored procedures, and other memory-consuming actions” .
To resolve this issue you need to change the default value of parameter 'thread_stack' in /etc/my.f in your MySQL configuration file. I use the XAMPP for php/mysql development.
Once you set this value you need to restart MySQL as this value cannot be set dynamically.
you maybe also encounter with the message when you try to modify the my.f
"Cannot open file for writing: Permission denied"
We will try to use the 'chmod' instruction to change permission as usually. I seldom take the concrete permission into consideration, so I use always use the 'chmod 777'. but it resulted in another errors when I use the phpmyadmin, another tools included in XAMPP, after running 'chmod 777'.
After googling it, I get this file (my.f) permissions has to be 600. I change its permission and it works well now.
bug info
报错信息:
java.sql.SQLException: Thread stack overrun: 5456 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.
官方相应信息:
The default (192KB) is large enough for normal operation. If the thread stack size is too small, it limits the plexity of the SQL statements that the server can handle, the recursion depth of stored procedures, and other memory-consuming actions
可以使用
show variables where `variable_name` = 'thread_stack';
查询当前数据库的默认线程栈的大小,一般情况下都能正常使用,当查询语句或者存储过程复杂时会报Thread stack overrun错误,此时只要修改默认配置就可以。
解决
windows: 修改mysql安装目录下的my-small.ini或者my.ini设置为256k,或者更大,然后重启服务
[mysqld]
thread_stack = 256k
linux: 同样要修改配置文件,!!!,不是安装目录下的配置文件,是/etc/my.f,只有这个文件才能生效,然后重启服务service mysql restart
[mysqld]
thread_stack = 256k
其实针对32位系统,32G内存,一般设置为512K即可,据国外网站看到的,如果是64位的系统可以适当增加,其实够用就好了,没必须刚开始设置的就很大。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南