質問 特定の MySQL 接続について、それがどのクライアント プロセスからのものであるかをどのように知ることができますか? ハンドシェイクレスポンス MySQL クライアントが MySQL サーバーに接続すると、ユーザー名とパスワードがサーバーに送信されるだけでなく、現在のプロセス ID、オペレーティング システム名、ホスト名などの情報もサーバーに送信されます。このデータ パケットは HandshakeResponse と呼ばれ、公式 Web サイトにそのフォーマットの詳細な説明があります。 接続ドライバーを自分で変更し、これを使用して接続時に送信される情報を確認できるようになりました。 2020-05-19 15:31:04,976 - mysql-connector-python.mysql.connector.protocol.MySQLProtocol.make_auth - メインスレッド - INFO - conn-attrs {'_pid': '58471'、'_platform': 'x86_64'、'_source_host': 'NEEKYJIANG-MB1'、'_client_name': 'mysql-connector-python'、'_client_license': 'GPL-2.0'、'_client_version': '8.0.20'、'_os': 'macOS-10.15.3'} HandshakeResponse パケットのバイト形式は次のとおりです。送信されるデータはパケットの最後にあります。 4 つの機能フラグ、CLIENT_PROTOCOL_41 は常に設定されています 4 最大パケットサイズ 1文字セット 文字列[23] 予約済み(すべて[0]) 文字列[NUL] ユーザー名 機能とCLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA {の場合 lenenc-int 認証応答の長さ 文字列[n] 認証応答 } それ以外の場合、機能と CLIENT_SECURE_CONNECTION が 1 認証応答の長さ 文字列[n] 認証応答 } それ以外 { 文字列[NUL] 認証応答 } 機能とCLIENT_CONNECT_WITH_DB { 文字列[NUL] データベース } 機能とCLIENT_PLUGIN_AUTH { 文字列[NUL] 認証プラグイン名 } 機能とCLIENT_CONNECT_ATTRS { lenenc-int すべてのキー値の長さ lenenc-str キー lenenc-str 値 'すべてのキーと値の長さ' にデータがある場合、キーと値のペアがさらにあります } 解決 前述の内容から、MySQL クライアントが現在のプロセス ID を MySQL サーバーに送信していることがわかります。これが問題を解決するための最も基本的な可能性を提供します。サーバーはこの情報を受信すると、performance_schema.session_connect_attrs に保存します。 最初のステップは、関心のある接続、その接続元の IP、およびその processlist_id について information_schema.processlist を照会することです。 mysql> information_schema.processlist から * を選択します。 +----+---------+--------------------+--------------------+--------+-----------+-----------+----------------------------------------------+ | ID | ユーザー | ホスト | DB | コマンド | 時間 | 状態 | 情報 | +----+---------+--------------------+--------------------+--------+-----------+-----------+----------------------------------------------+ | 8 | ルート | 127.0.0.1:57760 | performance_schema | クエリ | 0 | 実行中 | information_schema.processlist から * を選択 | | 7 | appuser | 172.16.192.1:50198 | NULL | スリープ | 2682 | | NULL | +----+---------+--------------------+--------------------+--------+-----------+-----------+----------------------------------------------+ セットに2行(0.01秒) 2番目のステップは、performance_schema.session_connect_attrsを介して接続のプロセスIDを照会することです。 mysql> processlist_id = 7 の場合、session_connect_attrs から * を選択します。 +----------------+-----------------+------------------------+------------------+ | プロセスリスト ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+------------------------+------------------+ | 7 | _pid | 58471 | 0 | | 7 | _プラットフォーム | x86_64 | 1 | | 7 | _source_host | NEEKYJIANG-MB1 | 2 | | 7 | _client_name | mysql-connector-python | 3 | | 7 | _client_license | GPL-2.0 | 4 | | 7 | _クライアントバージョン | 8.0.20 | 5 | | 7 | _os | macOS-10.15.3 | 6 | +----------------+-----------------+------------------------+------------------+ セット内の行数は 7 です (0.00 秒) processlist_id = 7 の接続は、172.16.192.1 のプロセス 58471 によって開始されていることがわかります。 診る ipython を使用してデータベースに接続したところ、ps から表示された結果は 58471 とまったく同じで、クエリ結果と一致していました。 ps -ef | grep 58471 501 58471 57741 0 3:24 PMttys001 0:03.67 /Library/Frameworks/Python.framework/Versions/3.8/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.8/bin/ipython 上記は、MySQL が対応するクライアント プロセスに接続する方法の詳細です。MySQL 接続の対応するクライアント プロセスの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Docker で Tomcat、MySQL、Redis をインストールするための詳細な手順
>>: テーブル内の要素のドラッグと並べ替えの問題について簡単に説明します
達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...
余計なことは言わないで、コードだけ見てみましょう〜 -- テーブル内のフィールドコメントを表示および...
目次1. クエリキャッシュの実装プロセス2. クエリキャッシュを構成する3. クエリキャッシュを有効...
1. はじめにElasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを...
目次メモを使うコールバックの使用メモを使う親コンポーネントが再レンダリングされると、そのすべての要素...
インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...
vue+remを使用したカスタムカルーセルチャートの実装は参考までに。具体的な内容は以下のとおりです...
背景最近、面接でデータベース トランザクションについてよく質問されます。通常は、@Transacti...
1. フォワードプロキシとリバースプロキシの違いフォワード プロキシはクライアントのプロキシとして機...
HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...
「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...
著者: 丁易出典: https://chengxuzhixin.com/blog/post/mysq...
注意: この方法は、Webkit ベースのブラウザにのみ適用されます。ブラウザのスクロールバーが広す...
簡単なチュートリアルこれは CSS3 カラー プログレス バー アニメーション効果です。 CSS3 ...
Navicat が MySql サーバーにリモート接続できない問題の解決策は、先頭に書かれています:...