我今天遇到了同样的问题,每次触发都会导致堆栈溢出.原来我的Zend社区服务器安装附带了一个默认的my.cnf文件,其中thread_stack大小设置为128K,这导致每个线程中可用于堆栈的131072字节:

mysql> show variables where `Variable_name` = 'thread_stack';

+---------------+--------+

| Variable_name | Value |

+---------------+--------+

| thread_stack | 131072 |

+---------------+--------+

所以我在/usr/local/zend/mysql/data/my.cnf中注释了这一行,重新启动了mysql守护进程,瞧! default 192K是

mysql> show variables where `Variable_name` = 'thread_stack';

+---------------+--------+

| Variable_name | Value |

+---------------+--------+

| thread_stack | 196608 |

+---------------+--------+

现在你的桌子& tchester的触发器工作完美:)(尽管请注意分隔符)

mysql> CREATE TABLE `job_title` (

-> `job_id` int(11) NOT NULL AUTO_INCREMENT,

-> `position_id` int(11) DEFAULT NULL,

-> `title` varchar(255) COLLATE latin1_general_cs NOT NULL,

-> `selectable` tinyint(4) NOT NULL DEFAULT '0',

-> PRIMARY KEY (`job_id`),

-> UNIQUE KEY `title` (`title`)

-> ) ENGINE=InnoDB;

Query OK, 0 rows affected (0.14 sec)

mysql> DELIMITER &&

mysql> create trigger job_position_trigger

-> before insert on job_title for each row

-> begin

-> if new.position_id is null then

-> set @position = (select max(position_id)+1 from job_title);

-> if @position is null then set @position = 1; end if;

-> set new.position_id = @position;

-> end if;

-> end;

-> &&

Query OK, 0 rows affected (0.29 sec)

mysql> DELIMITER ;

mysql> insert into job_title (title, selectable) values ("test", 1);

Query OK, 1 row affected (0.00 sec)

mysql> insert into job_title (title, selectable) values ("test2", 3);

Query OK, 1 row affected (0.00 sec)

mysql> select * from job_title;

+--------+-------------+-------+------------+

| job_id | position_id | title | selectable |

+--------+-------------+-------+------------+

| 1 | 1 | test | 1 |

| 2 | 2 | test2 | 3 |

+--------+-------------+-------+------------+

2 rows in set (0.00 sec)

你得到的错误,131072字节堆栈使用的9024字节和所需的128000字节是有意义的:9024 128000> 131072.

mysql堆溢出_为什么这个MySQL触发器会导致堆栈溢出?相关推荐

  1. 递归要素及太深导致堆栈溢出怎么办?

    递归概念理解:递归实质还是函数的嵌套调用,只不过调用的函数凑巧还是它自己而已. 递归要素:(1)递推公式(2)终止条件 递归太深导致堆栈溢出怎么办? 2个手段: 1.限制递归深度,设置一个阈值,超过就 ...

  2. 导致堆栈溢出的原因什么?

    导致堆栈溢出的原因: 1. 函数调用层次太深.函数递归调用时,系统要在栈中不断保存函数调用时的现场和产生的变量,如果递归调用太深,就会造成栈溢出,这时递归无法返回.再有,当函数调用层次过深时也可能导致 ...

  3. java mysql ssl警告_连接到MySQL数据库时有关SSL连接的警告

    用于初始化与MySQL服务器的连接的默认值在最近已更改,并且(通过快速查看堆栈溢出时最流行的问题和答案)新值引起了很多混乱.更糟糕的是,标准建议似乎是完全禁用SSL,这在制造过程中有点麻烦. 现在,如 ...

  4. mysql 硬负载_为啥单机MySQL又遭遇瓶颈?MySQL主从复制替你解决单机问题

    成长是一棵树,总是在你不知不觉的情况下快乐长大:成长是一株草,总是在你不知不觉的情况下长满大地:成长是一朵花,总是在你不知不觉的情况下开满山头. 这不,随着时间的迁移.项目网站的用户量.数据量持续上升 ...

  5. mysql炸包_炸裂!MySQL 82 张图带你飞

    之前两篇文章带你了解了 MySQL 的基础语法和 MySQL 的进阶内容,那么这篇文章我们来了解一下 MySQL 中的高级内容. 其他文章: 本文思维导图如下. 事务控制和锁定语句 我们知道,MyIS ...

  6. mysql账号认证_浅谈MySQL用户账号认证方式

    为了有效控制数据库用户的访问权限,在MySQL数据库中创建了一个新用户,但使用刚创建的用户和密码却发现连接不了MySQL数据库,通过查看官网手册及<MySQL技术内幕>一书,才逐渐熟悉My ...

  7. mysql映射表_[玩转MySQL之四]MySQL缓存机制

    一.前言 在当今的各种系统中,缓存是对系统性能优化的重要手段.MySQL Query Cache(MySQL查询缓存)在MySQL Server中是默认打开的,但是网上各种资料以及有经验的DBA都建议 ...

  8. mysql替换开头_如何在MySQL的字符串开头搜索和替换特定字符?

    为此,您可以使用INSERT().让我们首先创建一个表-mysql> create table DemoTable -> ( -> ZipCode varchar(200) -> ...

  9. ssh mysql环境搭建_搭建一个MySQL高可用架构集群环境

    架构 使用一台MHA manager.一台MySQL master节点.两台MySQL slave节点 软件版本 虚拟机:Ubuntu 18 MySQL:5.7.32 MHA:0.54 环境检查 安装 ...

最新文章

  1. PostgreSQL 9.3 beta2 stream replication primary standby switchover bug?
  2. input数字开头不能为0_李商隐为初恋写诗,每句以数字开头,最后10字一直被仿从未被超越...
  3. python调用ping命令_在Python中调用Ping命令,批量IP的方法
  4. Android编程之ActivityManager: Segmentation fault
  5. 拓端tecdat|python在Scikit-learn中用决策树和随机森林预测NBA获胜者
  6. 考勤系统 服务器管理,考勤管理系统ZKNet Web Server管理
  7. coreldraw错误代码14001_应用程序配置不正确,应用程序未能启动 提示14001错误代码解决方法...
  8. UGUI——RectTransform详解
  9. 河北档案费2016年取消
  10. BZOJ1189: [HNOI2007]紧急疏散evacuate(二分答案,最大流)
  11. 手机二维码~~~ZXing简介
  12. c++语言表白超炫图形_数学公式的超酷表白我爱你
  13. HAL库配置STM32F1系列PWM驱动步进电机(一)
  14. 基于51单片机的故障灯检测
  15. python控制其它软件_python——实现ERP软件自动化操作
  16. 解决antimalware service executable程序占用CPU过高(有效)
  17. 请插入GemGPK智能卡解决办法。
  18. 考研复试英语自我介绍模版
  19. Invalid bound statement (not found): com.admin.dao.SysLogUserMapper.selectByUserAndLogou
  20. 智能运维案例系列 | 袋鼠云日志助力云南某金融机构日志平台建设,实现核心业务系统运维智能化...

热门文章

  1. codeforces Gargari and Bishops(很好的暴力)
  2. hdu2066一个人的旅行(多源点多汇点的最短路径问题)
  3. python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法
  4. kali里PHP文件502错误,解决Linux Kali iptables开放22端口失败等一系列问题
  5. 深入理解Python中的全局解释锁GIL
  6. CTFHUB《Web-信息泄露-备份文件下载》网站源码,
  7. 点到线段的距离_直线垂直,垂线的性质,点到直线的距离
  8. mysql执行计划性能_MySQL SQL性能分析Explain执行计划
  9. ①你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  10. UVA1585 Score