当前位置: 首页 > 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.lryc.cn/news/606701.html

相关文章:

  • Rust → WebAssembly 的性能剖析全指南
  • (一)React +Ts(vite创建项目)
  • Activity之间互相发送数据
  • django的数据库原生操作sql
  • 注解退散!纯XML打造MyBatis持久层的终极形态
  • 第11届蓝桥杯Python青少组_国赛_高级组_2020年10月真题
  • 人员定位卡人脸智能充电发卡机
  • 赛博算命之八字测算事业运势的Java实现(四柱、五行、十神、流年、格局详细测算)
  • Python match-case 模式匹配详解
  • Unity优化技巧:自动隐藏视野外的3D模型
  • Python爬虫实战:研究pycares技术构建DNS解析系统
  • 玻尔兹曼分布与玻尔兹曼探索
  • 从比划沟通到指令同步:声网让跨国游戏升级
  • 什么是爬虫协议?
  • Unity相机控制
  • Sklearn 机器学习 文本数据 TF-IDF实现文本向量化
  • 噪声对比估计(NCE):原理、演进与跨领域应用
  • git SSL certificate problem: self-signed certificate in certificate chain 解决办法
  • ZED 2/2i 相机安装与调试完整指南 | Ubuntu 20.04 + CUDA 11.8
  • 从本地到云端:将Linux文件夹上传至GitHub仓库的完整指南
  • 如何填写PDF表格的例子
  • iOS 抓不到包怎么办?全流程排查思路与替代引导
  • uniapp基础 (一)
  • 逻辑回归召回率优化方案
  • uniapp无线(WIFI)运行调试APP(真机)
  • Java设计模式之行为型模式(解释器模式)实现方式详解
  • RabbitMQ 延时队列插件安装与使用详解(基于 Delayed Message Plugin)
  • 在uni-app中引入本地日志插件
  • 开发者体验如何度量?
  • android APT技术