五月 5th, 2011

mysql手动停止无响应查询方法

Unix/Linux系统, 技术杂谈, by 陈威.
热度:

      使用phpmyadmin、Navicat for Mysql或Mysql Workbench等客户端连接mysql服务器时,若mysql查询返回结果数据量太大或查询耗时太长时经常会出现查询无响应的情况,此时在客户端选择停止查询只是中止了客户端的查询进程,而服务器端仍在运行已提交的查询请求,从而导致服务器不响应其他查询甚至中止服务的后果。本文介绍如何通过Linux下的mysql命令行手动停止无响应查询或超时查询的方法。
      (1)登录mysql。在命令行下登录使用用户名(如admin)和密码(如password)登录的命令如下,其中,-u表示后面是登录使用的用户名, -p表示使用该用户名需要密码。执行该命令后系统会提示输入用户对应的密码,密码验证通过后即进入mysql的命令行界面。

mysql -u <用户名> -p
Enter Password: ******
mysql>

      (2)查看mysql正在运行的会话和查询。使用命令show processlist;查看mysql正在运行的查询情况,该命令执行后显示一个表状结构,如下所示:

Id User Host db Command Time State Info
141438 root localhost NULL Query 0 NULL show processlist

      (3)上表中Id列的值表示目前正在运行的查询的唯一标识,在上表中通过Command列和Info列中的SQL语句找到我们要停止的查询对应的Id号,然后执行kill语句即可停止该查询。命令如下:

kill 141438; 

附:常用命令行界面mysql命令
      show databases; //显示mysql中的所有数据库
      use [databaseName]; //使用某个数据库,只有运行此命令后才能进入该数据库做查询
      show tables; //显示当前数据库下的所有数据表和视图
      select * from [tableName] where [Where Clauses]; //执行常规查询语句,如select, insert, update, delete等。

Back Top

人民大学开发完成学术主页生成系统EasyScholar

Responses to “mysql手动停止无响应查询方法”

  1. 没有任何评论。
  1. 没有任何引用。

发表回复

Back Top

*
To prove you're a person (not a spam script), type the security text shown in the picture. Click here to regenerate some new text.
Click to hear an audio file of the anti-spam word