mysql - 在存储过程中显示从属状态

标签 mysql stored-procedures cursor replication

我对 mysql 存储过程相当陌生,我需要能够从过程中访问 SHOW SLAVE STATUS 的结果。我在网上搜索但似乎无法找到它。这是我一直在尝试的事情:

    CREATE PROCEDURE test()
BEGIN
 DECLARE a VARCHAR(1000);
 DECLARE cur1 CURSOR FOR SHOW SLAVE STATUS;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

 OPEN cur1;

 read_loop: LOOP
  FETCH cur1 INTO a;
  IF done THEN
   LEAVE read_loop;
  END IF;
 END LOOP;

 SELECT a;

 CLOSE cur1;
END;

此操作失败并显示以下内容:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SHOW SLAVE STATUS;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

如果有另一种方法可以做到这一点(也许不使用游标,因为只返回一行)那就太好了。

最佳答案

以防其他人遇到此问题。

我发现了一个肮脏的方法。我没有获得所需的所有信息,但这是一个开始。

information_schema.processlist(或SHOW PROCESSLIST)具有我可以在存储过程中使用的从属进程:

+-----+-------------+---------------------+---------+---------+-------+-----------------------------------------------------------------------+------------------+
| Id  | User        | Host                | db      | Command | Time  | State                                                                 | Info             |
+-----+-------------+---------------------+---------+---------+-------+-----------------------------------------------------------------------+------------------+
|   1 | system user |                     | NULL    | Connect | 75212 | Waiting for master to send event                                      | NULL             |
|   2 | system user |                     | NULL    | Connect |  2158 | Has read all relay log; waiting for the slave I/O thread to update it | NULL             |
+-----+-------------+---------------------+---------+---------+-------+-----------------------------------------------------------------------+------------------+

关于mysql - 在存储过程中显示从属状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011780/

相关文章:

SQL:当 UNIQUE 键约束不适用时处理表中的唯一值

c# - .NET Core Entity Framework 存储过程

javascript - 在手机/平板电脑屏幕上呈现光标的最佳策略?

MySQL存储过程-如何获取最后插入的ID

c - 扫描文本迫使我进入下一行,以确认输入。对于特殊情况我可以阻止这种情况吗?

汇编 8086 光标放置

MySQL 返回更新后的值

mysql - 对 SQL 赋值感到困惑

php - Codeigniter 每天查询数据库中的数据

c# - 在表值参数中将 nvarchar 长度设置为最大值