当前位置: 首页 > news >正文

解决MySQL不能编译存储过程的问题

解决MySQL不能编译存储过程的问题

1.问题描述

MySQL版本 8
用workbench 编辑存储过程,执行编译的时候,没有反应,无法执行编译。
在命令行的方式,也无法编译,没有反馈结果,只能ctrl+C ,中断执行。

2. 问题排查

(1)在 information_schema.ROUTINES 中查询没有 同名的存储过程存在。
(2)检查 存储过程中使用的表,没有表是被锁的。
(3)存储过程中的SQL单独执行也没有问题。
(4)发现在workbench 编译存储过程中,show logs
按钮显示,编译过程,首先是执行:

DROP procedure IF EXISTS `proc_create_vw_abcde`;

单独执行 判断删除存储过程语句,果然不能执行,进入了等待。
终于复现了,定位问题了,不是代码问题。

3.解决

查询是否有查询记录:

-- 查看是否有相关连接正在执行该过程
select * from performance_schema.events_statements_current where sql_text like '%proc_create_vw_abcde%';

发现有代码调用。
原来是删除存储过程后,还有应用调用这个存储过程,重新创建存储过程结果造成冲突,在重新创建编译存储过程的时候,没有反应,无法执行成功。
应用程序对存储过程的调用失败,但是一直没有释放。

查询 线程ID号


SELECT THREAD_ID, EVENT_ID, SQL_TEXT 
FROM performance_schema.events_statements_current 
WHERE SQL_TEXT LIKE '%proc_create_vw_abcde%';

线程ID号是 105
通过 threads 表查找对应的 PROCESSLIST_ID

select thread_id,processlist_id,processlist_user,processlist_host,processlist_db,processlist_command,processlist_time,processlist_state
from performance_schema.threads 
where thread_id = 105;    

对应的processlist_id 是 12345 ,kill !

KILL 12345;

重新编译存储过程成功。

开始一直怀疑是存储过程使用的表有问题,锁表了,所以不能编译成功,但是把SQL语句单独执行,又没有问题,耽误了很长时间。

特此记录!!!

http://www.xdnf.cn/news/1225171.html

相关文章:

  • 《Java 程序设计》核心知识点梳理与深入探究
  • SpringMVC全局异常处理+拦截器使用+参数校验
  • 2025 腾讯广告算法大赛 Baseline 项目解析
  • 为什么MCP协议是AI集成的未来API
  • 向华为学习——IPD流程体系之IPD术语
  • 京东云轻量云服务器与腾讯云域名结合配置网站及申请SSL证书流程详解
  • 使用 whisper, 音频分割, 初步尝试,切割为小块,效果还不错 1
  • 服务器地域选择指南:深度分析北京/上海/广州节点对网站速度的影响
  • 宝塔服务器挂载数据盘
  • OPENGLPG第九版学习 - 纹理与帧缓存 part2
  • 在SQL SERVER 中,用SSMS 实现存储过程的每日自动调用
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现道路汽车的检测识别(C#代码,UI界面版)
  • Django模型查询与性能调优:告别N+1问题
  • 【Java面试题】缓存穿透
  • Linux文件系统理解2
  • Trust Management System (TMS)
  • AR智能巡检系统:制造业设备管理的效率革新
  • 2025.8.1
  • 计算机(电脑)是什么?零基础硬件软件详解
  • 什么是三防平板电脑?三防平板有什么作用?
  • android MVC/MVP/MVVM/MVI架构发展历程和编写范式
  • LLM Prompt与开源模型资源(2)提示工程关键技术
  • WPF TreeView自带自定义滚动条
  • 基于OpenCV的cv2.solvePnP方法实现头部姿态估计
  • 性能测试-性能测试中的经典面试题一
  • 数据赋能(371)——数据挖掘——概述
  • OpenGL 坐标变换
  • 赛思NTP服务器选型推荐,赛思NTP服务器云端助力“数智伊利”步入现实!
  • SpringMVC的高级特性
  • Linux 内存管理之 Rmap 反向映射