故障分析 | GRANT 操作会引起复制中断吗?

故障分析 | GRANT 操作会引起复制中断吗?-1

作者:杨彩琳,爱可生华东交付部 DBA,主要负责 MySQL 日常问题处理及 DMP 产品支持。爱好跳舞,追剧。

爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

本文约 1100 字,预计阅读需要 3 分钟。


1问题背景

客户反馈,某业务测试环境的数据库主从复制断开。

登录到从库,执行 show slave status\G
,发现 sql 线程没有工作了,具体报错为:

LAST_ERROR_MUMBER: 1410<br>LAST_ERROR_MESSAGE: Worker 1 failed executing transaction 'c593bdc6-cd10-11ec-ac44-0050568a0cc2:2003275' at master log mysql-bin.00187, end_log_post 142 'You are not allowed to create a user with GRANT' on query. Default database: 'mysql'. Query: 'GRANT ALL PRIVILIEGES ON *.* TO 'p-dms-all'@100.104.%''<br>

也许你好奇这个过程中到底发生了什么,下面通过复现验证并解释该现象。

2本地复现

现有一套 MySQL 8.0 的主从,数据库中已存在只读用户 test@'10.186.%'

mysql> show grants for test@'10.186.%';<br>+------------------------------------------+<br>| Grants for test@10.186.% |<br>+------------------------------------------+<br>| GRANT SELECT ON *.* TO `test`@`10.186.%` |<br>+------------------------------------------+<br>1 row in set (0.00 sec)<br>