GreatSQL社区

搜索

[已解决] 执行sql报错

5232 3 2023-1-9 11:14
本帖最后由 fuhao009 于 2023-1-9 13:41 编辑

greatesql-8.0.25-16 初始化 GreatSQL/bin/mysqld --no-defaults --datadir=/data/mysql --initialize --user=mysql


执行sql报错如下:


(Mon Jan  9 11:06:21 2023)[root@GreatSQL][(none)]>ALTER USER USER() IDENTIFIED BY 'Test@123';
ERROR 3100 (HY000): Error on observer while running replication hook 'before_commit'.



mysql.log报错如下
[ERROR] [MY-010207] [Repl] Run function 'before_commit' in plugin 'group_replication' failed
全部回复(3)
fuhao009 2023-1-9 13:42:22
group_replication_group_seeds 填错了,导致启动很慢,这个时候无法执行SQL
yejr 2023-1-9 14:05:19
fuhao009 发表于 2023-1-9 13:42
group_replication_group_seeds 填错了,导致启动很慢,这个时候无法执行SQL

是的,启动MGR期间,是没办法执行DML的。
这时候可以查看数据库日志,以及show processlist查看数据库当前状态,应该能更快发现原因。
yejr 2023-1-9 14:07:59
yejr 发表于 2023-1-9 14:05
是的,启动MGR期间,是没办法执行DML的。
这时候可以查看数据库日志,以及show processlist查看数据库当 ...

在深入浅出系列文章中 https://gitee.com/GreatSQL/Great ... deep-dive-mgr-11.md 有详细介绍,启用MGR后,SQL执行的过程。
这时候如果看到关键字
  1. Error on observer while running replication hook 'before_commit'.
复制代码
就应该立即想到是这方面的问题了。

  1. MGR是以Plugin(插件)的方式集成到MySQL中,可以简单灵活部署,它在MySQL进行事务处理、Binlog传输和持久化等逻辑处理时,预埋了一些(Hook)钩子,在钩子上注册函数处理MGR相关逻辑。

  2. 以用户提交事务为例:

  3. 用户线程发出commit,请求提交事务,处在Server层。
  4. Server层调用MGR处理层,将事务信息通过Paxos层进行同步,用户线程等待。
  5. MGR处理层处理Paxos同步后的消息,唤醒用户线程,返回到Server层。
复制代码
fuhao009

25

主题

0

博客

93

贡献

注册会员

Rank: 2

积分
157

2022年度求知人物2022年度活跃用户月度求知人物勤学好问(铜)助人为乐(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-5 12:16 , Processed in 0.015812 second(s), 10 queries , Redis On.
快速回复 返回顶部 返回列表