“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)在“网络状态监测“ 输出