MYSQL如何查看进程和kill进程

目录
  • 如何查看进程和kill进程
    • 第一种
    • 第二种
  • kill所有慢查询进程和锁表进程
    • 1、kill所有慢查询进程
    • 2、kill所有死锁进程

如何查看进程和kill进程

有时候我们在执行一条SQL语句时,或者更改表结构时,由于这张表的数据量巨大,往往会在执行操作后就会卡住…然后这张表就会被锁住..这时,我们可以杀掉这个进程.

这里有两种方法查看和杀掉进程

第一种

SHOW PROCESSLIST;

执行上述命令,可以看到下图:

然后找到对应的ID:

KILL 41515;

就OK了.

第二种

需要借助工具,Navicat. 工具->服务器监控->MySQL

打开之后就可以看到下图:

然后还是找到对应的ID :

KILL 42736;

kill所有慢查询进程和锁表进程

1、kill所有慢查询进程

#!/bin/bash
mysql -uroot -pMy_Password -e "show processlist" | grep -i "Query" > slow_query.log
for query in `cat slow_query.log | awk '{print $1}'`
do
   echo "kill $query;" > kill_slow_query.sql
done

登录mysql,执行:

mysql> source kill_slow_query.sql

或者:

#!/bin/bash
for query in `mysqladmin -uroot -pMy_Password processlist | grep -i 'Query' | awk '{print $2}'`
do
   mysqladmin kill ${query}
done

2、kill所有死锁进程

#!/bin/bash
mysql -uroot -pMy_Password -e "show processlist" | grep -i "Locked" > locked.log
for lock in `cat locked.log | awk '{print $1}'`
do
   echo "kill $lock;" > kill_locked.sql
done

登录mysql,执行:

mysql> source kill_locked.sql

或者:

#!/bin/bash
for lock in `mysqladmin -uroot -pMy_Password processlist | grep -i 'Locked' | awk '{print $2}'`
do
   mysqladmin kill ${lock}
done

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)

    在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映.这个时候,就需要kill掉某个正在消耗资源的query语句即可, KILL命令的语法格式如下: KILL [CONNECTION | QUERY] thread_id 每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程. KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不

  • mysql show processlist 显示mysql查询进程

    1.进入mysql/bin目录下输入mysqladmin processlist; 2.启动mysql,输入show processlist; 如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程). 得到数据形式如下(只截取了三条): mysql> show processlist; +-----+-------------+--------------------+-------+---------+-------+----

  • MySQL kill不掉线程的原因

    背景 在日常的使用过程中,时不时会遇到个别,或者大量的连接堆积在 MySQL 中的现象,这时一般会考虑使用 kill 命令强制杀死这些长时间堆积起来的连接,尽快释放连接数和数据库服务器的 CPU 资源. 问题描述 在实际操作 kill 命令的时候,有时候会发现连接并没有第一时间被 kill 掉,仍旧在 processlist 里面能看到,但是显示的 Command 为 Killed,而不是常见的 Query 或者是 Execute 等.例如: mysql> show processlist; +

  • MYSQL如何查看进程和kill进程

    目录 如何查看进程和kill进程 第一种 第二种 kill所有慢查询进程和锁表进程 1.kill所有慢查询进程 2.kill所有死锁进程 如何查看进程和kill进程 有时候我们在执行一条SQL语句时,或者更改表结构时,由于这张表的数据量巨大,往往会在执行操作后就会卡住…然后这张表就会被锁住..这时,我们可以杀掉这个进程. 这里有两种方法查看和杀掉进程 第一种 SHOW PROCESSLIST; 执行上述命令,可以看到下图: 然后找到对应的ID: KILL 41515; 就OK了. 第二种 需要借

  • Linux查看端口、进程情况及kill进程的方法

    看端口: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat –apn 查看所有的进程和端口使用情况.发现下面的进程列表,其中最后一栏是PID/Program name 发现8080端口被PID为9658的Java进程占用. 进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看 就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉! 方法二:直接使用 n

  • SqlServer查询和Kill进程死锁的语句

    查询死锁进程语句 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' 杀死死锁进程语句 kill spid 下面再给大家分享一段关于sqlserver检测死锁;杀死锁和进程;查看锁信息 --检测死锁 --如果发生死锁了,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程?

  • Tomcat 发布程序使用cmd查看端口占用、相应进程、杀死进程等的命令

    如何查看程序占用的端口 一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道是哪个程序或进程占用了端口,可以用该命令 netstat –ano|findstr "指定端口号" 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道是哪个程序或进程占用了端口,可以用该命令 netstat –ano|f

  • 查看端口并杀进程python脚本代码

    我就废话不多说,直接上代码吧: # -*- coding: utf-8 -*- import os out=os.system('netstat -aon|findstr "25"')#25端口号 print(out)#输出进程 out=os.system('tasklist|findstr "3316"')#3316进是程 print(out)#输出程序名字 out=os.system('taskkill /f /t /im MESMTPC.exe')#MESMT

  • MySQL 如何连接对应的客户端进程

    问题 对于一个给定的 MySQL 连接,我们如何才能知道它来自于哪个客户端的哪个进程呢? HandshakeResponse MySQL-Client 在连接 MySQL-Server 的时候,不只会把用户名密码发送到服务端,还会把当前进程id,操作系统名,主机名等等信息也发到服务端.这个数据包就叫 HandshakeResponse 官方有对其格式进行详细的说明. 我自己改了一个连接驱动,用这个驱动可以看到连接时发送了哪些信息. 2020-05-19 15:31:04,976 - mysql-

  • Shell脚本实现监控swap空间使用情况和查看占用swap的进程

    复制代码 代码如下: #!/bin/bash   echo -e `date +%y%m%d%H%M` echo -e "PID\t\tSwap\t\tProc_Name"   # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,net等存放的是其他信息) for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]` do     # 让进程释放swap的方法只有一个:就是重

  • 用VBS实现脚本结束进程与防止进程启动

    今天下午没课,躲进私人空间开始思考些问题.在浏览VBS相关案例时,自己写了两个小程序出来,有Hack性质的(其实只要能"借刀杀人",什么软件没黑客性质?- -!).Kill.vbs用来在cmd下结束进程,Dis.vbs用来在窗口模式下防止某进程再次启动.这两个VBS都不会被杀毒软件KILL掉,并且有一定的隐蔽性--看代码!('为注释) Kill.vbs: 复制代码 代码如下: for each ps in getobject _   ("winmgmts:\\.\root\c

  • 什么是PHP7中的孤儿进程与僵尸进程

    基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程.子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态. 孤儿进程 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程.孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作. 僵尸进程 一

  • Python 进程操作之进程间通过队列共享数据,队列Queue简单示例

    本文实例讲述了Python 进程操作之进程间通过队列共享数据,队列Queue.分享给大家供大家参考,具体如下: 队列中的数据是放在内存中的,可以通过分布式缓存redis优化队列. demo.py(进程通过队列共享数据): import multiprocessing def download_from_web(q): """下载数据""" # 模拟从网上下载的数据 data = [11, 22, 33, 44] # 向队列中写入数据 for te

随机推荐