首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL客户端在InnoDB集群中使用setPrimaryInstance()之后就会崩溃,但是集群仍然处于运行状态,所有节点都在运行。

MySQL客户端在InnoDB集群中使用setPrimaryInstance()之后就会崩溃,但是集群仍然处于运行状态,所有节点都在运行。
EN

Database Administration用户
提问于 2021-06-22 06:04:29
回答 1查看 190关注 0票数 0

因此,我有一个由3个节点组成的集群,每个节点位于同一个城市的一个不同的数据中心。我的体系结构是一个主节点,其中一个节点(我们称之为节点1)是主节点,另外两个节点是次要节点。

因此,我注意到MySQL客户端出现故障。我试着重新启动它,但失败了。当我检查日志时,我看到一个错误,上面写着:InnoDB: Unable to lock ./ibdata1, error: 11

此时,试图解决这个问题,唯一对我有效的是当我使用lsof -i:3306并终止与mysqld相关的进程时。

正如我所预料的,终止mysqld进程迫使我的集群将其主节点从节点1切换到节点3,然后使用mysqlsh管理集群,并使用setPrimaryInstance()方法将节点3重新转换为节点1,作为我的主节点。

这样做后,Node 1中的MySQL客户端再次停止工作,并且崩溃,不能再次启动。我必须通过相同的过程(即终止与它相关的进程)才能再次工作,这将再次切换主节点。

因此,我的问题是:在MySQL客户端仍然工作时,是否有任何方法将节点1保持为主节点?为什么切换主实例会使MySQL客户端崩溃呢?我不明白为什么会这样。

我还在我的系统上安装了mysql路由器。我使用的是MySQL版本8.0.25。

EN

回答 1

Database Administration用户

发布于 2021-06-22 18:42:19

守护进程称为mysqld。这通常是启动后“启动”一次,可能是自动的。

命令行客户机称为mysql;这不是一个‘服务’,不需要sudo

“群集”意味着多台服务器。这意味着您必须连接到特定的机器(或通过代理)。运行没有mysql-h要求连接到同一台机器上的实例,即通过“套接字”。

如果这还不足以确定要修复什么,那么请列出所涉及的机器,说明哪个MySQL组件在哪个服务器上。包括客户端(S),如mysql、MySQL Shell和“自动脚本”。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/294636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档