2012-02-10 18 views
2

MySQL 5.1の場合、MySQLクライアント接続によって保持されている名前付きMySQL「ロック」のリストを取得する方法はありますか?MySQLクライアント接続で保持されている名前付きMySQLロックのリストを取得する方法

ロックの名前が分かっていれば、特定の名前付きロックを確認できます。しかし、名前付きロックを保持しているクライアント接続(具体的には、各クライアントが保持しているロックの名前)をリストする方法(可能であれば)を知りたい。

ここでは、取得済み、解放済み、チェック済みなどの名前付きロックについて質問しています。 MySQLのGET_LOCK、RELEASE_LOCK、IS_FREE_LOCK、およびIS_USED_LOCK関数によって呼び出されます。

http://dev.mysql.com/doc/refman/5.1/en/miscellaneous-functions.html#function_get-lock

(注:私はLOCK TABLE文で取得したテーブルロックについて尋ねない午前)

+1

SHOW PROCESSLISTは、状態が「ユーザーロック」であるためロックを待機しているクライアント接続を表示しますが、ロックを待機しているクライアントのリストは表示されません。ないロックの名前が何であるか、誰がそれを保持しているかを調べる方法。 – nnichols

答えて

4

私はそれがロックを保持するクライアントのリストを取得することはできないと思うが、あなたはすべき

select * 
from information_schema.PROCESSLIST 
where state = 'User lock' 
+0

ありがとう、私はロックの名前を取得する方法を見つけることができませんでした。私はロックの名前がどこかのメモリにあると確信していますが、MySQLはそれを公開しません。私はそれが有効になっている場合、一般的なログに記録されているように見えます。 – spencer7593

関連する問題