首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL关闭,kill还是kill -9 ?

MySQL关闭,kill还是kill -9? 某一天的中午,测试了MySQL关闭的一个小场景,简单分析一下。...今天我们主要看下kill命令对MySQL的影响。...可以看到,kill -9命令,kill掉了24141进程,mysqld进程kill掉了,但是mysqld-safe这个守护进程将mysqld再度拉起,新进程的pid是24232 03 总结...当我们给一个进程发送一个sigkill的信号的时候,这个信号要求进程立即停止,不允许出现阻塞或者进程忽略的情况,一般进程来不及做"资源释放,临时文件回收"等工作,所以经常会带来一些副作用例如数据丢失等...从上面的描述,结合之前的知识储备,我们不难总结: kill mysqld进程,本身是优雅、安全退出mysql的一种方法,所以mysqld_safe认为这个操作是允许的; 相反,kill -9 mysqld

3K10
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL kill会话不起作用?

背景 在一次日常测试中发现,kill 一个会话后,SQL语句依然在运行并没终止;kill的会话重新连接并继续执行原来的SQL语句。...> use test Database changed mysql> mysql> mysql> rename table t1 to t2; session3:kill session2 mysql...(HY000): Lost connection to MySQL server during query 可以看到session2的会话连接已经终止,并且没有自动重新连接,达到了我们想要的效果...总结 通过MySQL客户端登录时,会话重新连接的选项 --reconnect 默认是开启的,如果要禁止重新连接可在登录时添加 --skip-reconnect KILL CONNECTION 与 KILL...参考链接 https://dev.mysql.com/doc/refman/8.0/en/kill.html https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html

17111

MySQL kill会话不起作用?

背景 在一次日常测试中发现,kill 一个会话后,SQL语句依然在运行并没终止;kill的会话重新连接并继续执行原来的SQL语句。...> use test Database changed mysql> mysql> mysql> rename table t1 to t2; session3:kill session2 mysql...> mysql> kill query 137; Query OK, 0 rows affected (0.00 sec) #为了排版,表格字段略有删减,具体信息请看图片 session2: mysql...(HY000): Lost connection to MySQL server during query 可以看到session2的会话连接已经终止,并且没有自动重新连接,达到了我们想要的效果...总结 通过MySQL客户端登录时,会话重新连接的选项 --reconnect 默认是开启的,如果要禁止重新连接可在登录时添加 --skip-reconnect KILL CONNECTION 与 KILL

23620

MySQL 为什么Kill不掉线程

mysql kill命令 -- 终止线程正在执行的语句 kill query 线程ID; -- 断开线程的连接,connection可以省略 -- 如果该线程有正在执行的语句,会先停止正在执行的语句 kill...connection 线程ID; kill的执行逻辑 kill的线程不会立即停止,因为当我们对表做增删改查时,会在表上加MDL读锁,因此如果立即停止,MDL读锁将会无法释放。...为什么等行锁的线程可以kill正常退出,但是上面的情况无法正常退出?...超大事务执行期间kill:回滚操作需要对事务期间生成的所有数据版本做回收操作,耗时比较长 大查询回滚:查询过程中生成比较大的临时文件需要删除,如果此时文件系统压力很大,删除临时文件需要等待IO资源 DDL...执行到最后阶段kill:需要删除中间过程的临时文件,可能受IO资源影响耗时较久

2.1K10

MySQL为什么还有kill不掉的语句?

MySQL 中有两个 kill 命令:一个是 kill query + 线程 id,表示终止这个线程中正在执行的语句;一个是 kill connection + 线程 id,这里 connection...不知道你在使用 MySQL 的时候,有没有遇到过这样的现象:使用了 kill 命令,却没能断开这个连接。...只是对于 MySQLkill 命令来说,不需要传信号量参数,就只有“停止”这个命令 实现上,当用户执行 kill query thread_id_B 时,MySQL 里处理 kill 命令的线程做了两件事...总结 MySQL 中,有些语句和连接“kill 不掉”的情况。...而 kill 的线程,需要执行到判断状态的“埋点”,才会开始进入终止逻辑阶段。并且,终止逻辑本身也是需要耗费时间的。

6.9K30

kill -0与kill -9

-0 和kill -9的区别?...当涉及到 kill -0 和 kill -9 命令时,让我们更详细地了解它们的区别和用法: kill -0 命令: 例如,以下命令会检查进程ID为12345的进程是否存在: if kill -0 12345...如果进程存在,kill -0 命令会返回退出状态码0(成功)。 如果进程不存在,kill -0 命令会返回非零退出状态码(通常是1)。 这个命令用于在尝试与进程交互之前,首先检查它是否在运行。...kill -9 命令: 例如,以下命令会强制终止进程ID为12345的进程: kill -9 12345 kill -9 命令用于强制终止指定的进程。...通常,kill -9 命令用于终止那些无响应或不可控制的进程,以恢复系统稳定性。 总的来说,kill -0 用于检查进程是否存在,而 kill -9 用于强制终止进程。

16820

Linux kill, killall, kill -9

如果僵尸进程init收养,问题就比较严重了。杀死init进程意味着关闭系统。 ...) pgrep firefox | xargs kill -s 9 c) pidof firefox | xargs kill -s 9 或 d) kill -s 9 `ps -ef | grep firefox...例如: # kill -pid   注释: 标准的kill命令,默认采用信号(signal)号是15,通常都能达到目的,终止有问题的进程,并把进程的资源释放给系统。...5) kill -l 例如: kill -l PID  -l 选项, 告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。...6) kill -HUP 有时候只想简单的停止和重启进程。 例如: # kill -HUP PID  该命令让Linux和缓的执行进程关闭,然后立即重启。

6.3K20

MySQL中的kill命令,你用过吗?

01 MySQL中的kill语法 在MySQL中,kill命令分为如下两种: 1、kill query + pid 2、kill connection + pid 其中connection可以省略...第二种kill pid的方法指的是断开该线程的连接,如果线程中有正在执行的语句,那么也会停止这个语句。 当收到kill query 的命令后,MySQL将会执行哪些动作?...02 kill 不掉的场景 上述例子,都是在某个线程可以kill命令“唤醒”的场景下进行的,在某些场景下,kill query pid的方法不能停止一个线程,原因是当前线程处于一种无法"唤醒"的 状态...to MySQL server during query 可以看到,当执行kill 4的时候,会话3的连接才断开,在执行kill 4的时候,MySQL做了如下几个动作: 1、 将线程状态置为kill_connection...在MySQL中,如果一个线程的状态是KILL_CONNECTION,就把Command列显示Killed。

8.9K11

MySQL 案例:为什么 kill 不掉线程

问题描述 在实际操作 kill 命令的时候,有时候会发现连接并没有第一时间 kill 掉,仍旧在 processlist 里面能看到,但是显示的 Command 为 Killed,而不是常见的 Query...对大量数据进行 DML 操作的时候,kill 这一类 SQL 语句会触发事务回滚(InnoDB引擎),虽然语句 kill 掉了,但是回滚操作也会非常久。...因此在本次模拟中,这个参数设置了一个非常低的值。...> 可以看到,kill 命令执行之后,Session 2 的连接马上就断开了,但是 Session 2 发起的查询仍旧残留在 MySQL 中。...kill 的操作很有可能并不能及时终止这些问题查询,反而可能会因为程序侧连接断开之后触发重连,产生更多的低效查询,进一步拖垮数据库。

3.8K60

kill命令详解_linux杀死进程kill

绝大多数人对 kill 命令的理解就是结束一个进程,除了这个 kill 其实还有其它的功能。 kill 的作用是向一个进程发送指定信号,而不仅仅是结束一个进程哦!...-l 参数也可以根据信号名称列出代表的数字,如下所示: linuxy@linuxy:~$ kill -l 9 KILL linuxy@linuxy:~$ kill -l KILL 9 linuxy@linuxy...:~$ 先尝试不带参数,直接 kill pid,如下所示: linuxy@linuxy:~$ kill 3756 linuxy@linuxy:~$ ps -ef | grep kill-test linuxy...在不带参数情况下,kill 默认发送 TERM 信号到指定进程,TERM 是终止进程信号,程序没有结束的原因是程序捕获了该信号,当然,可以杀死不能捕获该信号的进程。...但当前处于停止状态的进程; SIGGIO : 表示一个异步 IO 事件; SIGSTOP : 这是一个作业控制信号,用于停止一个进程; 注意:除了 SIGKILL 和 SIGSTOP 信号之外,其它的信号都可以进程所捕获

5.6K60

mysqlkill掉所有锁表的进程

很多时候由于异常或程序错误会导致个别进程占用大量系统资源,需要结束这些进程,通常可以使用以下命令Kill进程: mysqlkill掉所有锁表的进程 2009-05-12 14:03 转载请保留如下作者信息...mysql > show processlist ;出来哗啦啦好几屏幕的, 没有一千也有几百条, 查询语句把表锁住了, 赶紧找出第一个Locked的thread_id, 在mysql的shell里面执行...mysql > kill thread_id ;kill掉第一个锁表的进程, 依然没有改善. 既然不改善, 咱们就想办法将所有锁表的进程kill掉吧, 简单的脚本如下. #!...; kill 66402986 ; kill 66402991 ; …..好了, 我们在mysql的shell中执行, 就可以把所有锁表的进程杀死了....mysql > source kill_thread_id . sql 当然了, 也可以一行搞定 for id in `mysqladmin processlist | grep -i locked

2.8K40

kill命令

SIGRTMAX*: 这是一组在系统之间变化的信号,它们标记为SIGRTMAX-1、SIGRTMAX-2、SIGRTMAX-3、......kill -1 111 通知进程关闭,使进程自行关闭,这个关闭是安全、干净地退出,如果kill命令后直接加进程的pid号默认选项为-15,这个信号是可以进程自身忽略并继续执行自身的,即该信号是可以阻塞和忽略的...kill -15 111 强行中断当前程序的执行,类似Ctrl+C按键用以结束进程的结果,该信号是可以阻塞和忽略的。...kill -2 111 退出进程,类似Ctrl+\按键用以结束进程的结果,该信号是可以阻塞和忽略的。...kill -3 111 强行关闭进程,-9信号是无条件终止,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理,该信号是不可以阻塞和忽略的,当然通常是不建议使用kill

1.3K20
领券