提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2019-11-05 15:00:07.680|阅读 445 次
概述:dbForge Studio for MySQL是与专业化MySQL数据库紧密相连的先进开发环境。本文讲述了通过两种方法来终止与MySQL数据库的某些连接。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
数据库或服务器的维护通常在晚上由数据库管理员执行。但是,这些例程有时会被长时间运行的查询或挂起锁的应用程序阻塞,挂起锁的时间比预期更长。
通常,应优先考虑应用程序,并且通常会取消维护例程,以免干扰应用程序。但是有时候,您的例程仍然被阻塞,或者由于某种原因在某个时间之前尚未完成,在这种情况下,您需要一种快速的方法来终止所涉及的连接。
在本文中,我们旨在考虑两种解决上述问题的方法。为此,我们将使用dbForge Studio for MySQL。
方法一:根据用户登录生成一个事件,该事件将终止所有连接
第一种方法包括创建一个特殊的MySQL事件。创建事件时,将创建一个包含一个或多个SQL语句的命名数据库对象,该SQL语句将在一个特定的日期和时间开始和结束,并以一个或多个规则的时间间隔执行。
使用以下脚本在数据库上创建事件:
DELIMITER $$ CREATE EVENT kill_process_event ON SCHEDULE EVERY '1' DAY STARTS '2019-03-20 08:45:30' DO BEGIN DECLARE kill_done int; DECLARE EXIT HANDLER FOR NOT FOUND SET kill_done = 1; BEGIN DECLARE cursor_ID int; DECLARE cursor_i CURSOR FOR SELECT id FROM information_schema.PROCESSLIST WHERE USER LIKE 'test%' AND ID != CONNECTION_ID(); OPEN cursor_i; read_loop: LOOP FETCH cursor_i INTO cursor_ID; KILL CONNECTION cursor_ID; IF kill_done THEN LEAVE read_loop; END IF; END LOOP; CLOSE cursor_i; END; END $$ ALTER EVENT kill_process_event_ev ENABLE $$ DELIMITER ;
下一步
将您自己的值分配给所需的参数。即日程、时间和用户登录。
安排事件
设置服务器变量event_scheduler = ON
如何安排事件
要安排事件,请在对象资源管理器中右键单击它,然后从弹出窗口中选择“编辑事件”。在打开的向导中,您可以为事件配置开始和结束日期、重复发生以及其他相关选项。
在我们的示例中,我们想终止sakila数据库上test%用户的连接。
执行上述脚本后,所有具有用户登录名('test%')的连接都将被终止。
该方法的缺点在于,当改变用于选择会话ID的条件时,必须改变对象(事件)。
或者,您可以创建一个存储过程和一个事件来调用此过程。
创建一个调用存储过程的事件,该事件将根据用户登录终止连接
基本上,此方法是前一种方法的扩展。它涉及创建MySQL过程,然后安排事件以调用此过程。
首先,您需要在数据库上创建一个存储过程:
DELIMITER $$ CREATE PROCEDURE kill_process_proc() BEGIN DECLARE kill_done int; DECLARE EXIT HANDLER FOR NOT FOUND SET kill_done = 1; BEGIN DECLARE cursor_ID int; DECLARE cursor_i CURSOR FOR SELECT id FROM information_schema.PROCESSLIST WHERE USER LIKE 'test%' AND ID != CONNECTION_ID(); OPEN cursor_i; read_loop: LOOP FETCH cursor_i INTO cursor_ID; KILL CONNECTION cursor_ID; IF kill_done THEN LEAVE read_loop; END IF; END LOOP; CLOSE cursor_i; END; END$$ DELIMITER ;
您需要将所需的值分配给USER参数。在我们的示例中,它是“test%”。
接下来,准备好过程,您可以创建一个事件来调用它并按计划执行它。请考虑以下脚本:
CREATE DEFINER = 'root'@'localhost' EVENT a_kor.kill_process_event ON SCHEDULE EVERY '1' DAY STARTS '2019-03-19 14:53:00' DO BEGIN CALL kill_process_proc(); END; ALTER EVENT a_kor.kill_process_event ENABLE;
下一步
将您自己的值分配给所需的参数。即日程、时间和用户登录。
安排事件
设置服务器变量event_scheduler = ON
执行上述步骤后,所有具有用户登录名('test%')的连接都将被终止。
方法二:创建一个bat文件以启动MySQL客户端和一个带有参数的过程
您还可以通过命令行界面创建可执行的BAT文件来启动MySQL客户端和带有参数的过程。
首先,您需要创建一个带有参数的过程。为此,请使用以下脚本:
DELIMITER $$ CREATE PROCEDURE kill_process_proc() BEGIN DECLARE kill_done int; DECLARE EXIT HANDLER FOR NOT FOUND SET kill_done = 1; BEGIN DECLARE cursor_ID int; DECLARE cursor_i CURSOR FOR SELECT id FROM information_schema.PROCESSLIST WHERE USER LIKE 'test%' AND ID != CONNECTION_ID(); OPEN cursor_i; read_loop: LOOP FETCH cursor_i INTO cursor_ID; KILL CONNECTION cursor_ID; IF kill_done THEN LEAVE read_loop; END IF; END LOOP; CLOSE cursor_i; END; END$$ DELIMITER ;
相应的过程将出现在数据库中。让我们借助dbForge Studio for MySQL对其进行研究。
接下来,您需要创建一个BAT文件。
要创建BAT文件,请执行以下操作:
1、打开纯文本编辑器,例如记事本。
2、输入以下代码:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" --user=<user> --password=<password> --host=<host> --port=<port> --database=<database_name> --execute="CALL kill_process_param('%1')"
3、为用户、密码、主机、端口和数据库名称参数分配自己的值。
4、保存扩展名为.bat的文件。
现在,您需要在Windows任务调度程序的帮助下安排bat文件的执行。
结果,所有具有用户登录名('test%')的连接都将被终止。
结论
知道如何在MySQL Server中终止进程可能是工具箱中的便捷工具。但是,我们建议您谨慎使用给定的方法。您可以下载dbForge Studio for MySQL试用版体验一下~
想要购买该产品请点击“在线订购”,想要了解更多产品信息请点击
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
dbForge Studio for MySQL是与专业化MySQL数据库紧密相连的先进开发环境。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢