This module searches processes on a server and optionally kills either the query or the connection for all matching processes.
Processes are matched by searching the fields of the INFORMATION_SCHEMA.PROCESSLIST table (which is available only for servers from MySQL 5.1.7 and later). Internally, the module operates by constructing a SELECT statement for finding matching processes, and then sending it to the server. Instead of performing the search, the module can return the SQL code that performs the query. This can be useful if you want to execute the query later or feed it to some other program that processes SQL queries further.
The following constants correspond to columns in the INFORMATION_SCHEMA.PROCESSLIST table. They indicate which columns to examine when searching for processes matching the search conditions.
mysql.utilities.command.proc.ID
mysql.utilities.command.proc.USER
mysql.utilities.command.proc.HOST
mysql.utilities.command.proc.DB
mysql.utilities.command.proc.COMMAND
mysql.utilities.command.proc.TIME
mysql.utilities.command.proc.STATE
mysql.utilities.command.proc.INFO
The following constants indicate actions to perform on processes that match the search conditions.
mysql.utilities.command.proc.KILL_QUERY
Kill the process query
mysql.utilities.command.proc.KILL_CONNECTION
Kill the process connection
mysql.utilities.command.proc.PRINT_PROCESS
Print the processes
class mysql.utilities.command.proc.ProcessGrep(matches, actions=[], use_regexp=False)
This class searches the INFORMATION_SCHEMA.PROCESSLIST table for processes on MySQL servers and optionally kills them. It can both be used to actually perform the search or kill operation, or to generate the SQL statement for doing the job.
To kill all queries with user 'mats', the following code can be used:
>>> from mysql.utilities.command.proc import *
>>> grep = ProcessGrep(matches=[(USER, "mats")], actions=[KILL_QUERY])
>>> grep.execute("root@server-1.example.com", "root@server-2.example.com")
| Parameters: |
|
sql([only_body=False])
Return the SQL code for executing the search (and optionally, the kill).
If only_body is True, only
the body of the function is shown. This is useful if the SQL code
is to be used with other utilities that generate the routine
declaration. If only_body is
False, a complete procedure will be generated
if there is any kill action supplied, and just a select statement
if it is a plain search.
| Parameters: |
|
| Returns: | SQL code for executing the operation specified by the options. |
| Return type: | string |
execute(connections, ...[, output=sys.stdout, connector=mysql.connector])
Execute the search on each of the connections supplied. If
output is not None, the
value is treated as a file object and the result of the execution
is printed on that stream. Note that the output and connector
arguments must be supplied as keyword
arguments. All other arguments are treated as connection
specifiers.
| Parameters: |
|

User Comments
Add your own comment.