执行sql报错
本帖最后由 fuhao009 于 2023-1-9 13:41 编辑greatesql-8.0.25-16 初始化 GreatSQL/bin/mysqld --no-defaults --datadir=/data/mysql --initialize --user=mysql
执行sql报错如下:
(Mon Jan9 11:06:21 2023)[(none)]>ALTER USER USER() IDENTIFIED BY 'Test@123';
ERROR 3100 (HY000): Error on observer while running replication hook 'before_commit'.
mysql.log报错如下
Run function 'before_commit' in plugin 'group_replication' failed
group_replication_group_seeds 填错了,导致启动很慢,这个时候无法执行SQL fuhao009 发表于 2023-1-9 13:42
group_replication_group_seeds 填错了,导致启动很慢,这个时候无法执行SQL
是的,启动MGR期间,是没办法执行DML的。
这时候可以查看数据库日志,以及show processlist查看数据库当前状态,应该能更快发现原因。 yejr 发表于 2023-1-9 14:05
是的,启动MGR期间,是没办法执行DML的。
这时候可以查看数据库日志,以及show processlist查看数据库当 ...
在深入浅出系列文章中 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/deep-dive-mgr/deep-dive-mgr-11.md 有详细介绍,启用MGR后,SQL执行的过程。
这时候如果看到关键字 Error on observer while running replication hook 'before_commit'. 就应该立即想到是这方面的问题了。
MGR是以Plugin(插件)的方式集成到MySQL中,可以简单灵活部署,它在MySQL进行事务处理、Binlog传输和持久化等逻辑处理时,预埋了一些(Hook)钩子,在钩子上注册函数处理MGR相关逻辑。
以用户提交事务为例:
用户线程发出commit,请求提交事务,处在Server层。
Server层调用MGR处理层,将事务信息通过Paxos层进行同步,用户线程等待。
MGR处理层处理Paxos同步后的消息,唤醒用户线程,返回到Server层。
页:
[1]