MySQL 主从复制遇到 1590 报错

0    195    1

Tags:

👉 本文共约1871个字,系统预计阅读时间或需8分钟。

1故障描述

DMP[1] 收到告警:从库的 SQL 线程停止工作,MySQL 版本为 5.7.32,登录到从库查看复制信息报错如下:

从库错误日志信息如下:

解析对应 Binlog 信息如下:

主库错误信息如下:

客户反馈执行了一些授权操作然后复制就出现报错,执行的语句如下:

2故障分析

根据以上报错信息可知:在做权限变更时发生了错误,主库在 binlog 里写一条 INCIDENT_EVENT,备库在解析到 INCIDENT_EVENT 就直接报错。

那在什么情况下执行授权语句会导致主库在 binlog 写 INCIDENT_EVENT 呢?

当权限变更操作只处理了一部分并发生错误时,主库会在 binlog 里写一条 INCIDENT_EVENT。

那什么情况下会发生权限变更只处理一部分而有一部分没处理完呢?

下面举例说明两种相关场景。

MySQL 5.7 的问题

在 MySQL 5.7 里使用 GRANT 语句新建用户,其中有部分权限有问题。

使用 GRANT 创建 test 用户(MySQL 8.0 版本已经不支持使用 GRANT 创建用户):

在创建用户时对 test 库授予 SELECT、INSERT、FILE 权限,因 FILE 权限不能授予某个数据库而导致语句执行失败。但最终结果是:test@'%' 创建成功,授权部分失败。从上面的测试可知,使用 GRANT 创建用户其实是分为两个步骤:创建用户和授权。权限有问题并不影响用户的创建,上述语句会导致主库在 binlog 写 INCIDENT_EVENT,从而导致主从复制报错。

GRANT 对两个用户同时授权

使用一条 GRANT 语句,同时给 test@'10.186.63.5'test@'10.186.63.29' 用户授权,其中 test@'10.186.63.5' 用户存在,而 test@'10.186.63.29' 不存在。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MySQL 主从复制遇到 1590 报错后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部