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.
According to the MySQL manual “The default (192KB) is large enough for normal operation. If the thread stack size is too small, it limits the complexity 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.cnf 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.cnf
"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.cnf) 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.
官方相應(yīng)信息:
The default (192KB) is large enough for normal operation. If the thread stack size is too small, it limits the complexity 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';
查詢當(dāng)前數(shù)據(jù)庫的默認(rèn)線程棧的大小,一般情況下都能正常使用,但是當(dāng)查詢語句或者存儲過程復(fù)雜時會報Thread stack overrun錯誤,此時只要修改默認(rèn)配置就可以。
解決
windows: 修改mysql安裝目錄下的my-small.ini或者my.ini設(shè)置為256k,或者更大,然后重啟服務(wù)
[mysqld]
thread_stack = 256k
linux: 同樣要修改配置文件,但是!??!,不是安裝目錄下的配置文件,是/etc/my.cnf,只有這個文件才能生效,然后重啟服務(wù)service mysql restart
[mysqld]
thread_stack = 256k
其實針對32位系統(tǒng),32G內(nèi)存,一般設(shè)置為512K即可,據(jù)國外網(wǎng)站看到的,如果是64位的系統(tǒng)可以適當(dāng)增加,其實夠用就好了,沒必須剛開始設(shè)置的就很大。
- MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解
- mysql -參數(shù)thread_cache_size優(yōu)化方法 小結(jié)
- Mysql優(yōu)化調(diào)優(yōu)中兩個重要參數(shù)table_cache和key_buffer
- MySQL高速緩存啟動方法及參數(shù)詳解(query_cache_size)
- MySQL性能優(yōu)化之table_cache配置參數(shù)淺析
- mysql優(yōu)化的重要參數(shù) key_buffer_size table_cache
- 優(yōu)化mysql之key_buffer_size設(shè)置
- mysql Key_buffer_size參數(shù)的優(yōu)化設(shè)置
- MySQL thread_stack連接線程的優(yōu)化
相關(guān)文章
MySQL數(shù)據(jù)庫varchar的限制規(guī)則說明
本文我們主要介紹了MySQL數(shù)據(jù)庫中varchar的限制規(guī)則,并以一個實際的例子對限制規(guī)則進(jìn)行了說明,希望能夠?qū)δ兴鶐椭?/div> 2011-08-08
mysql5.5與mysq 5.6中禁用innodb引擎的方法
這篇文章主要介紹了mysql5.5中禁用innodb引擎的方法,需要的朋友可以參考下2014-04-04
mysql 5.7.18 Installer安裝下載圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.18 Installer安裝下載圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
Mysql version can not be less than 4.1 出錯解決辦法
這篇文章主要介紹了Mysql version can not be less than 4.1 解決辦法的相關(guān)資料,需要的朋友可以參考下2016-10-10
windows?64位下mysql8.0.25安裝配置教程(最詳細(xì)!)
之前一直在用 5.7 版本,竟然一下子跳到 8.0了,下面這篇文章主要給大家介紹了關(guān)于在windows?64位下mysql8.0.25安裝配置教程,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
MySql command line client命令操作大全
這篇文章主要介紹了MySql command line client命令操作大全,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01
MySQL關(guān)聯(lián)查詢優(yōu)化實現(xiàn)方法詳解
在數(shù)據(jù)庫的設(shè)計中, 我們通常都是會有很多張表 , 通過表與表之間的關(guān)系建立我們想要的數(shù)據(jù)關(guān)系, 所以在多張表的前提下, 多表的關(guān)聯(lián)查詢就尤為重要,這篇文章主要介紹了MySQL關(guān)聯(lián)查詢優(yōu)化2022-11-11最新評論

