skydum

個人的な作業記録とか備忘録代わりのメモ

MySQLのprocesslistをコンソールに常時表示する

MySQLのprocesslistをコンソールに常時表示する

  • SQLAlchemy使ったテストをしている時にMySQLのセッション情報を確認をする事があり、その時に毎回コンソールから入ってコマンドを打つのが面倒だったので確認するシェルスクリプトを作ったのでメモ

事前準備

MySQLへ接続するための設定をファイルに書き出す

  • login-pathにはシェルスクリプトで接続先の名称として利用する名前を付ける
    今回はprocesslist
  • MySQLに接続するためのユーザーはshowuser
  • 設定ファイルにパスワードも書き出す(パスワードは暗号化されます)
$ mysql_config_editor set --login-path=processlist --user=showuser --password
Enter password:  ← パスワードを設定する

設定の確認

  • 設定が完了するとホームディレクトリに.mylogin.cnfというファイルができる
  • ファイルの中身は暗号化されているので見ることは出来ないがコマンドで中身を確認することができる
$ mysql_config_editor print --all
admin@ubuntu:~$ mysql_config_editor print --all
[processlist]
user = "showprocess"
password = *****

シェルスクリプトの作成

  • showprocess.sh
#!/bin/bash

while true
do
    clear
    /usr/bin/mysql --login-path=processlist -Dperformance_schema -e "select * from INFORMATION_SCHEMA.PROCESSLIST;"

    # ユーザー名もパスワードもスクリプト内に直書きで困らないなら上の行をコメントアウトして以下でも可
    /usr/bin/mysql -u showprocess -pPASSWORD -Dperformance_schema -e "select * from INFORMATION_SCHEMA.PROCESSLIST;"
 
    sleep 1
done
  • showprocess.sh

シェルスクリプトの実行

$ chmod 700 showprocess.sh
$ ./showprocesslist.sh
+------+-----------------+-----------+--------------------+---------+------+------------------------+----------------------------------------------+
| ID   | USER            | HOST      | DB                 | COMMAND | TIME | STATE                  | INFO                                         |
+------+-----------------+-----------+--------------------+---------+------+------------------------+----------------------------------------------+
| 1361 | showprocess     | localhost | performance_schema | Query   |    0 | executing              | select * from INFORMATION_SCHEMA.PROCESSLIST |
|    5 | event_scheduler | localhost | NULL               | Daemon  | 2698 | Waiting on empty queue | NULL                                         |
+------+-----------------+-----------+--------------------+---------+------+------------------------+----------------------------------------------+