我在 MySQL 8.0.28 上,我有这个功能:
DELIMITER $$
CREATE FUNCTION DelayedHello()
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
DO SLEEP(3);
RETURN CONCAT('Hello ', 'World!');
END$$
DELIMITER ;
这是由 root 用户创建的。
但是,当调用的用户test
运行此函数时,在 中show processlist
,这就是我所看到的。因此,看起来用户root
正在运行它。
127.0.0.1> select * from information_schema.processlist ;
+-------+-----------------+------------------+-----------+---------+---------+------------------------+----------------------------------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+-------+-----------------+------------------+-----------+---------+---------+------------------------+----------------------------------------------+
| 48547 | root | %:40814 | helpscout | Query | 1 | User sleep | DO SLEEP(3) |
我尝试查询以information_schema.processlist
查看用户,但它返回的信息与用户 root 似乎正在执行的信息相同。那么,有没有办法在进程列表中显示是谁test
在运行这个进程呢?如果不是,我如何找出谁真正调用了这个函数?