1. 程式人生 > 其它 >MySQL Connection--排查未授權使用者(unauthenticated user)

MySQL Connection--排查未授權使用者(unauthenticated user)

排查環境

Server version:         5.7.26-29-log Percona Server (GPL)

問題描述

資料庫週期性新增幾條`unauthenticated user`的連線,連線長期未釋放導致異常。

排查方法

## 檢視使用者為unauthenticated user的PROCESS
SELECT * FROM information_schema.processlist WHERE USER='unauthenticated user' LIMIT 1 \G
*************************** 1. row ***************************
           ID: 127670873
         USER: unauthenticated user
         HOST: connecting host
           DB: NULL
      COMMAND: Connect
         TIME: 965
        STATE: login
         INFO: NULL
      TIME_MS: 965150
    ROWS_SENT: 0
ROWS_EXAMINED: 0
1 row in set (0.01 sec)

## 根據PROCESSLIST_ID查詢對應的處理程序
SELECT * FROM performance_schema.threads WHERE PROCESSLIST_ID=127670873 \G
*************************** 1. row ***************************
          THREAD_ID: 127670969
               NAME: thread/sql/one_connection
               TYPE: FOREGROUND
     PROCESSLIST_ID: 127670873
   PROCESSLIST_USER: NULL
   PROCESSLIST_HOST: NULL
     PROCESSLIST_DB: NULL
PROCESSLIST_COMMAND: Sleep
   PROCESSLIST_TIME: NULL
  PROCESSLIST_STATE: NULL
   PROCESSLIST_INFO: NULL
   PARENT_THREAD_ID: NULL
               ROLE: NULL
       INSTRUMENTED: YES
            HISTORY: YES
    CONNECTION_TYPE: NULL
       THREAD_OS_ID: 10039
1 row in set (0.00 sec)

## 根據THREAD_ID查詢對應的連線資訊
SELECT * FROM performance_schema.socket_instances WHERE `THREAD_ID`=127670969 \G
*************************** 1. row ***************************
           EVENT_NAME: wait/io/socket/sql/client_connection
OBJECT_INSTANCE_BEGIN: 61360640
            THREAD_ID: 127670969
            SOCKET_ID: 200
                   IP: xxx.xxx.xxx.xxx
                 PORT: 59950
                STATE: ACTIVE
1 row in set (0.00 sec)

## 如果是正常請求,可以通過PROCESSLIST_ID查詢到請求應用資訊
SELECT * FROM `performance_schema`.`session_connect_attrs` WHERE PROCESSLIST_ID=128200353;
+----------------+-----------------+---------------------------------------------+------------------+
| PROCESSLIST_ID | ATTR_NAME       | ATTR_VALUE                                  | ORDINAL_POSITION |
+----------------+-----------------+---------------------------------------------+------------------+
|      128200353 | _client_name    | pymysql                                     |                0 |
|      128200353 | _pid            | 70794                                       |                1 |
|      128200353 | program_name    | /xxx/xxxx.py                                |                2 |
|      128200353 | _client_version | 0.9.2                                       |                3 |
+----------------+-----------------+---------------------------------------------+------------------+
4 rows in set (0.00 sec)