这里有新鲜出炉的 Mysql 教程,程序狗速度看过来!
MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQL AB 公司。MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
这篇文章主要介绍了 Mysql 使用 kill 命令解决死锁问题 (杀死某条正在执行的 sql 语句) 的相关资料, 需要的朋友可以参考下
在使用 mysql 运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,就需要 kill 掉某个正在消耗资源的 query 语句即可,KILL 命令的语法格式如下:
- KILL [CONNECTION | QUERY] thread_id
每个与 mysqld 的连接都在一个独立的线程里运行,您可以使用 SHOW PROCESSLIST 语句查看哪些线程正在运行,并使用 KILL thread_id 语句终止一个线程。
KILL 允许自选的 CONNECTION 或 QUERY 修改符:KILL CONNECTION 与不含修改符的 KILL 一样:它会终止与给定的 thread_id 有关的连接。KILL QUERY 会终止连接当前正在执行的语句,但是会保持连接的原状。
如果您拥有 PROCESS 权限,则您可以查看所有线程。如果您拥有超级管理员权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。您也可以使用 mysqladmin processlist 和 mysqladmin kill 命令来检查和终止线程。
首先登录 MySQL,然后使用: show processlist; 查看当前 mysql 中各个线程状态。
- mysql> show processlist;
- +------+------+----------------------+----------------+---------+-------+-----------+---------------------
- | Id | User | Host | db | Command | Time | State | Info
- +------+------+----------------------+----------------+---------+-------+-----------+---------------------
- | 7028 | root | ucap-devgroup:53396 | platform | Sleep | 19553 | | NULL
- | 8352 | root | ucap-devgroup:54794 | platform | Sleep | 4245 | | NULL
- | 8353 | root | ucap-devgroup:54795 | platform | Sleep | 3 | | NULL
- | 8358 | root | ucap-devgroup:62605 | platform | query | 4156 | updating | update t_shop set |
以上显示出当前正在执行的 sql 语句列表,找到消耗资源最大的那条语句对应的 id.
然后运行 kill 命令,命令格式如下:
- kill id;
- - 示例:
- kill 8358
杀掉即可。
(adsbygoogle = window.adsbygoogle || []).push({});
来源: http://www.phperz.com/article/17/0703/336587.html