Skip to content
Interactively shows long running queries in MySQL server and provides option to kill them one by one
Go Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
configuration Generate empty config with comments Aug 11, 2019
mysql Make logs better Aug 11, 2019
.gitignore Add goreleaser config Aug 10, 2019
.goreleaser.yml Update release config Aug 10, 2019
LICENSE Add license Aug 10, 2019
README.md Fix typo Aug 10, 2019
build.sh Update readme Aug 10, 2019
config.toml Generate empty config with comments Aug 11, 2019
go.mod Run mod tidy Aug 10, 2019
go.sum Run mod tidy Aug 10, 2019
kill-mysql-query.go Make logs better Aug 11, 2019
release.sh Update release config Aug 10, 2019
screenshot.png Add screenshot Aug 10, 2019

README.md

kill-mysql-query

  _____     ____
/      \  |  o |
|        |/ ___\|
|_________/
|_|_| |_|_|

kill-mysql-query interactively shows long running queries in MySQL database and provides option to kill them one by one.

👉 Great for firefighting situations 🔥🚨🚒

It can connect to MySQL server as configured, can use SSH Tunnel if necessary, and let you decide which query to kill. By default queries running for more than 10 seconds will be marked as long running queries, but it can be configured.

screenshot


Installation

Download binary from release tab.


Usage

kill-mysql-query [config.toml]:
	Checks for long running queries in the configured server.
	If no file is given, it tries to read from config.toml
	in the current directory.

Other commands:

	generate [config.toml]:
		Generates a new empty configuration file

	init:
		Alias for generate

	help, --help, -h:
		Shows this message


Configuration

Run kill-mysql-query init to generate an empty configuration file.

[MySQL]
  mysql_host = ""
  mysql_port = 3306
  mysql_username = ""
  mysql_password = ""

  # hosted_in_aws_rds: Optional.
  #
  # Uses `CALL mysql.rds_kill()` instead of `kill` command.
  # Useful in RDS databases or replica where
  # `mysql_username` may not have privilege to use `kill`
  hosted_in_aws_rds = false

  # db: Optional.
  #
  # If provided, filter out long running
  # queries from other databases
  db = ""

[ssh_tunnel]
  use_ssh_tunnel = false
  ssh_host = ""
  ssh_port = 22
  ssh_username = ""
  ssh_password = ""

  # ssh_private_key takes priority over ssh_password
  # if both are provided
  ssh_private_key = ""

  # ssh_key_passphrase: Optional.
  ssh_key_passphrase = ""

[long_running_query]
  # Default is 10 seconds.
  # `kill-mysql-query` will only list running queries
  # those are being executed for more than or equal to
  # this value.
  timeout_second = 10


FAQ

How do I simulate a long running query to test kill-mysql-query?

This stackoverflow answer may come in handy: https://stackoverflow.com/a/3892443/761555

select benchmark(9999999999, md5('when will it end?'));

License

MIT

You can’t perform that action at this time.