2013年8月29日木曜日

mysqladminの小ネタ

mysqladminなんて基本的にshutdownの時しか使わないんですが、まあ色々SQLでやる時とのマッピングとか。

取り敢えず5.6.13ベースです。
⇒ http://dev.mysql.com/doc/refman/5.6/en/mysqladmin.html

  • mysqladmin create ⇒ CREATE DATABASEに同じ。
  • mysqladmin debug ⇒ SQLではできない。エラーログにデバッグ情報を出力する。
  • mysqladmin drop ⇒ DROP DATABASEに同じ。
  • mysqladmin extended-status ⇒ SHOW GLOBAL STATUSに同じ。
  • mysqladmin flush-hosts ⇒ FLUSH HOSTSに同じ。
  • mysqladmin flush-logs ⇒ FLUSH LOGSに同じ。ログ種別は設定できない。
  • mysqladmin flush-privileges ⇒ FLUSH PRIVILEGESに同じ。
  • mysqladmin flush-status ⇒ FLUSH STATUSに同じ。ただ、FLUSH STATUSって
    セッションスコープのステータス変数はクリアしてくれるけど
    グローバルスコープの扱いが微妙なので、
    使いどころがどれだけあるのかすごく謎。
  • mysqladmin flush-tables ⇒ FLUSH TABLESに同じ。
  • mysqladmin kill ⇒ KILLに同じ。
  • mysqladmin old-password ⇒ SET SESSION old_passwords= 1;
    SET PASSWORD= PASSOWRD('..');
    SET SESSION old_passwords= 0; にほぼ同じ。
  • mysqladmin password ⇒ SET PASSWORD= PASSWORD('..'); に同じ。
    こっちはold_passwordsの設定値に従う。
  • mysqladmin ping ⇒ SQLではできない。COM_PINGを投げて成功するか、
    認証に失敗すると0が返る。
    (認証に失敗しても、接続を拒否られたということは
    mysqldが生きているということ)
  • mysqladmin processlist ⇒ SHOW PROCESSLISTに同じ。
  • mysqladmin --verbose processlist ⇒ SHOW FULL PROCESSLISTに同じ。
  • mysqladmin reload ⇒ FLUSH PRIVILEGESに同じ。
    つまりmysqladmin flush-privilegesに同じ。
  • mysqladmin reflesh ⇒ FLUSH TABLES; FLUSH LOGS; に同じ。
  • mysqladmin shutdown ⇒ 対応するSQLなし。mysqldのシャットダウン。
  • mysqladmin start-slave ⇒ START SLAVEに同じ。
  • mysqladmin status ⇒ STATUSの結果を簡単にしたような感じ。
  • mysqladmin stop-slave ⇒ STOP SLAVEに同じ。
  • mysqladmin variables ⇒ SHOW GLOBAL VARIABLESに同じ。
  • mysqladmin version ⇒ STATUSの結果を簡単にしたような感じ。


ちなみにコマンドは複数指定可能なので、

$ mysqladmin -uroot -pxxx stop-slave create d2 start-slave flush-status

とかやると、

mysql> STOP SLAVE;
mysql> CREATE DATABASE d2;
mysql> START SLAVE;
mysql> FLUSH STATUS;

相当の動作になる。


あと目新しげな使い方としては(いや昔からあるけどこのオプション)、

$ mysqladmin -uroot -pxxx -r -i 10 extended-status

とやると、10秒ごとに(-i 10)前回との差分を(-r)表示してくれる。
-iはどのコマンドでも使えるけど、-rはextended-status専用。それ以外のコマンドにつけても単純に無視される。

$ mysqladmin -uroot -pxxx -i 5 flush-logs

とかやれば5秒おきにFLUSH LOGSできるよ!(しないよ)

0 件のコメント :

コメントを投稿