Mysql Error Code : 1436 Thread stack overrun

所属分类: 数据库 / Mysql 阅读数: 367
收藏 0 赞 0 分享

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.

官方相应信息:

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';

查询当前数据库的默认线程栈的大小,一般情况下都能正常使用,但是当查询语句或者存储过程复杂时会报Thread stack overrun错误,此时只要修改默认配置就可以。

解决

windows: 修改mysql安装目录下的my-small.ini或者my.ini设置为256k,或者更大,然后重启服务

[mysqld]
thread_stack = 256k
linux: 同样要修改配置文件,但是!!!,不是安装目录下的配置文件,是/etc/my.cnf,只有这个文件才能生效,然后重启服务service mysql restart

[mysqld]
thread_stack = 256k

其实针对32位系统,32G内存,一般设置为512K即可,据国外网站看到的,如果是64位的系统可以适当增加,其实够用就好了,没必须刚开始设置的就很大。

更多精彩内容其他人还在看

MySQL数据库主从复制延时超长的解决方法

这篇文章主要给大家介绍了关于MySQL数据库主从复制延时超长的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

解决当MySQL数据库遇到Syn Flooding问题

Syn攻击常见于应用服务器,而数据库服务器在内网中,应该很难碰到类似的攻击,这篇文章主要介绍了当MySQL数据库遇到Syn Flooding问题 ,需要的朋友可以参考下
收藏 0 赞 0 分享

Win10下免安装版MySQL8.0.16的安装和配置教程图解

这篇文章主要介绍了Win10下免安装版MySQL8.0.16的安装和配置 ,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考解决价值,需要的朋友可以参考下
收藏 0 赞 0 分享

MYSQL定时清除备份数据的具体操作

这篇文章主要给大家介绍了关于MYSQL定时清除备份数据的具体操作,文中通过示例代码介绍的非常详细,对大家学习或者使用MYSQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Win10系统下MySQL8.0.16 压缩版下载与安装教程图解

这篇文章主要介绍了Win10系统下MySQL8.0.16 压缩版下载与安装教程图解,本文图文并茂给大家介绍的非常详细,具有一定的参考解决价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Mysql错误:Too many connections的解决方法

这篇文章主要给大家介绍了关于Mysql错误Too many connections的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

为何不要在MySQL中使用UTF-8编码方式详解

这篇文章主要给大家介绍了关于为何不要在MySQL中使用UTF-8编码方式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

mysql-8.0.16 winx64的最新安装教程图文详解

最近刚学习数据库,首先是了解数据库是什么,数据库、数据表的基本操作,这就面临了一个问题,mysql的安装,我这里下载的是64位的,基于Windows的,需要的朋友可以参考下
收藏 0 赞 0 分享

MySql 8.0.16-win64 安装教程

本文通过图文并茂的形式给大家介绍了MySql 8.0.16-win64 安装教程 ,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql 8.0.16 Win10 zip版本安装配置图文教程

这篇文章主要为大家详细介绍了mysql 8.0 Win10 zip版本安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多