从 MySQL 连接 ID 中识别 PID?

从 MySQL 连接 ID 中识别 PID?

“mysqladmin processlist”的输出如下所示:

+-------+------+-----------+-------+---------+------+-------------------+------------------------+
| Id    | User | Host      | db    | Command | Time | State             | Info                   |
+-------+------+-----------+-------+---------+------+-------------------+------------------------+
| 4411  | root | localhost | mydb1 | Sleep   | 86   |                   |                        |
| 12911 | root | localhost | mydb1 | Sleep   | 50   |                   |                        |
| 65142 | root | localhost | mydb1 | Query   | 4    | copy to tmp table | OPTIMIZE TABLE my_tble |
| 65428 | root | localhost |       | Query   | 0    |                   | show processlist   |
+-------+------+-----------+-------+---------+------+-------------------+------------------------+

从该表中的“Id”值,我如何追溯到创建连接的进程的 PID,以查明谁在做什么?所有连接均通过本地套接字进行。

答案1

我建议使用多个用户帐户。另一种方法是通过将连接 ID、进程 ID、脚本名称和日期/时间戳写入日志文件或表来保留连接历史记录。我不知道还有其他方法可以跟踪此信息。

答案2

mysql中没有这样的映射。

答案3

我已在我的技术博客中回答过这个问题:http://blog.fotoos.org/2018/02/find-which-process-holds-particular.html

基本上,有两个步骤:1)做一个“显示完整进程列表;“在mysql中;此列表包括每个套接字/连接的端口号,2)在“网络状态监测“ 输出

相关内容