MYSQL中如何强制终止一条语句的执行?

MYSQL中如何强制终止一条语句的执行?,第1张

KILL命令的语法格式如下:KILL [CONNECTION | QUERY] thread_id

步骤如下:

1、KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接。

2、KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状。

3、如果您拥有PROCESS权限,则您可以查看所有线程

4、如果您拥有超级管理员权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。

5、您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

首先登录mysql,然后使用: show processlist查看当前mysql中各个线程状态。

以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.

然后运行kill命令,命令格式如下:

[sql] view plain copy

kill id

- 示例:

kill 8358

杀掉即可。

mysql如何查看定时器有没有执行

1.查看是否开启evevt与开启evevt。

1.1、MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的。

show VARIABLES LIKE '%sche%'

1.2、开启evevt功能

SET GLOBAL event_scheduler = 1

2.创建定时器的过程

2.1、创建测试表test

drop table if exists test

create table test

(

id int(11) not null auto_increment primary key,

time datetime not null

) engine=innodb default charset=utf8

2.2、创建evevt要调用的存储过程test_proce

delimiter //

drop procedure if exists test_proce//

create procedure test_proce()

begin

insert into test(time) values(now())

end//

delimiter

2.3、开启evevt(要使定时起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1)

执行show variables like 'event_scheduler'查看evevt是否开启;

若没开启执行set global event_scheduler='on'

2.4、创建事件test_event(其作用:每隔一秒自动调用test_proce()存储过程)

drop event if exists test_event

create event test_event

on schedule every 1 second

on completion preserve disable

do call test_proce()

2.5、开启事件test_event

mysql事件(event)也可以称为事件调度器是用来执行定时任务的一组Sql组合,可以理解为定时器,删除事件的语句为 drop event 事件名,删除事件不需要重启,也可以通过alter event语句关闭事件


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7313515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存