问题标签 [mysql-innodb-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
101 浏览

mysql - MySQL - Ubuntu- MySQL InnoDB Cluster 服务(或)守护进程名称

MySQL - 在 Ubuntu 操作系统中,MySQL Innodb 集群用于复制数据的服务(或)守护进程名称是什么?

0 投票
1 回答
581 浏览

mysql - AWS DMS 无法将 SSL 必需模式与 MySQL 一起使用

我尝试使用 AWS DMS 将另一个云提供的 MySQL innodb 集群迁移到 AWS。我上传了 MySQL 生成的自签名 CA.pem,它不起作用。

AWSDatabaseMigrationService:CA 证书验证错误

DMS SSL 模式没有requiredMySQL 选项。所以我被困住了...

我想知道在这种情况下我应该怎么做。我想到了两种解决方案。

  1. 替换 CA 和所有服务器证书,以便 DMS 可以使用它。不确定这是否有任何潜在风险。
  2. 自己启动另一个 EC2 复制实例。然后 RDS 可以复制 EC2 实例。(我无法在 RDS 中使用自动定位的原因是集群节点中没有一个拥有所有二进制日志)

AWS 论坛中的大部分主题都没有得到答复。我觉得在这里问比较好。
任何建议或想法都会很好。谢谢。

0 投票
1 回答
696 浏览

innodb - ERROR MY-011542 Repl Plugin group_replication 报告:'表 repl_test 没有任何主键

我最近安装了一个 InnoDB Cluster 并尝试创建一个没有任何主键或等效项的表来测试集群索引概念,其中“如果表没有 PRIMARY KEY,InnoDB 在包含行 ID 值的合成列上内部生成一个名为 GEN_CLUST_INDEX 的隐藏聚集索引或合适的唯一索引”。

我创建了如下表:

检查 GEN_CLUST_INDEX 的创建:

但是,当我尝试插入行时,出现以下错误:

下面是我的conf文件:

我的 MySQL 版本: mysql Ver 8.0.11 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)

0 投票
2 回答
3247 浏览

mysql - MySQL 5.7 innoDB 集群中的一个节点崩溃,无法将崩溃的节点重新加入集群

我们在其中一个环境中有一个 MySQL innodb 集群。集群中的一个节点崩溃了。虽然,我们能够使崩溃的节点联机,但我们无法将其加入集群。

有人可以帮助恢复/恢复节点并将其加入集群。我们尝试使用“dba.rebootClusterFromCompleteOutage()”,但没有帮助。

配置:MySQL 5.7.24社区版,CentOS 7,标准三节点innodb集群

集群状态:

mysql错误日志中记录的错误:

0 投票
2 回答
607 浏览

mysql - 创建集群时是否需要知道 ipWhitelist 中包含的所有主机?

我正在玩 MySQL 8.0.14 和 InnoDB 集群。我目前坚持通过 mySQL shell 创建组复制。

由于我想使用 SSL,我需要在 dba.createCluster() 上设置 ipWhitelist,如下所示:

var cluster = dba.createCluster('testCluster4', {ipWhitelist:'somedns-1.tosqlnode'})

集群创建成功。现在我想添加另一个实例。

cluster.addInstance('ca@somedns-2.tosqlnode', {ipWhitelist:'somedns-1.tosqlnode,somedns-2.tosqlnode'})

这失败了,因为第一个实例显示一个错误,指出非白名单实例正在尝试连接。


所以再创建一个:

var cluster = dba.createCluster('testCluster5', {ipWhitelist:'somedns-1.tosqlnode,somedns-2.tosqlnode'})

集群创建成功。现在我想添加另一个实例。

cluster.addInstance('ca@somedns-2.tosqlnode', {ipWhitelist:'somedns-1.tosqlnode,somedns-2.tosqlnode'})

实例添加成功。


是否真的有必要在创建集群时知道所有实例地址?我无法通过 MySQL shell 找到更改初始 ipWhitelist 的方法。

0 投票
1 回答
179 浏览

mysql - 为什么撤消 MySQL innodb 缓冲池中的日志条目 (MySQL 5.7)

长事务会在 undo log 中生成几个旧版本的行,这些行存储在 ibdata 文件中。undo log 条目是否也存储在 innodb 缓冲池中。

0 投票
1 回答
590 浏览

mysql - 在哪里可以找到 MySQL InnoDB 集群名称

当集群未运行时,我在哪里可以找到在 InnoDB 集群中创建的集群名称?

0 投票
1 回答
454 浏览

mysql - 死锁 BLOB INSERT MySQL 8.0 InnoDB 集群

将较大的文件插入配置了 InnoDB 集群复制的 MySQL 8.0 数据库时,查询会遇到表死锁。对于较小的 6 KB 文件,INSERT 有效。通过 MySQL 路由器运行以及通过直接连接到“R/W”主机运行 INSERT 时会出现问题。不太可能达到适当的交易限额。请参阅下面的 MySQL 设置。

桌子

测试文件 M-02-012.jpg 4.813KB => 死锁! M-05-055.jpg 6KB => 作品

命令

MySQL 设置输出

InnoDB 集群设置状态:

MySQL Shell 输出错误

测试用例:

对于没有InnoDB Cluster 配置的正常 MySQL 8.0 安装,INSERT 有效。

对于具有 InnoDB Cluster 配置但集群中只有一台主机的 MySQL 8.0,INSERT 也可以工作。

只有具有 InnoDB Cluster Configuration 和更多主机INSERT 的 MySQL 8.0 在死锁中运行。

我们忘记了设置还是这是一个错误?

0 投票
1 回答
901 浏览

mysql - 无法启动实例“xxxxx:3306”的组复制?

我正在尝试在 mysql 上进行 innodb 集群安装,但它一直显示此错误消息:

2019-11-13T18:39:04.599509Z 15 [错误] [MY-011640] [Repl] 插件 group_replication 报告:“加入组后等待查看超时”2019-11-13T18:39:04.599604Z 15 [错误] [MY-011735] [Repl] 插件 group_replication 报告:“[GCS] 成员正在离开一个组而没有加入。” 2019-11-13T18:58:09.097406Z 0 [系统] [MY-010910] [服务器] /usr/sbin/mysqld:关闭完成 (mysqld 8.0.18) MySQL 社区服务器 - GPL。2019-11-13T18:58:09.513421Z 0 [系统] [MY-010116] [服务器] /usr/sbin/mysqld (mysqld 8.0.18) 从进程 11847 开始 2019-11-13T18:58:09.869423Z 0 [错误] [MY-013180] [服务器] 函数 'group_replication' 已经存在。2019-11-13T18:58:09.869563Z 0 [警告] [MY-010736] [服务器] 无法使用 soname 'group_replication 加载名为 'group_replication' 的插件。所以'。2019-11-13T18:58:09.954250Z 0 [警告] [MY-010068] [服务器] CA 证书 ca.pem 是自签名的。2019-11-13T18:58:09.980142Z 0 [警告] [MY-010604] [回复] 既没有使用 --relay-log 也没有使用 --relay-log-index;因此,当此 MySQL 服务器充当从属服务器并更改其主机名时,复制可能会中断!请使用 '--relay-log=inmbz7200-relay-bin' 来避免这个问题。2019-11-13T18:58:09.986045Z 0 [系统] [MY-010931] [服务器] /usr/sbin/mysqld:准备连接。版本:'8.0.18' 套接字:'/var/lib/mysql/mysql.sock' 端口:3306 MySQL 社区服务器 - GPL。因此,当此 MySQL 服务器充当从属服务器并更改其主机名时,复制可能会中断!请使用 '--relay-log=inmbz7200-relay-bin' 来避免这个问题。2019-11-13T18:58:09.986045Z 0 [系统] [MY-010931] [服务器] /usr/sbin/mysqld:准备连接。版本:'8.0.18' 套接字:'/var/lib/mysql/mysql.sock' 端口:3306 MySQL 社区服务器 - GPL。因此,当此 MySQL 服务器充当从属服务器并更改其主机名时,复制可能会中断!请使用 '--relay-log=inmbz7200-relay-bin' 来避免这个问题。2019-11-13T18:58:09.986045Z 0 [系统] [MY-010931] [服务器] /usr/sbin/mysqld:准备连接。版本:'8.0.18' 套接字:'/var/lib/mysql/mysql.sock' 端口:3306 MySQL 社区服务器 - GPL。

0 投票
1 回答
1304 浏览

mysql - InnoDB Cluster addInstance:插件 group_replication 报告:“读取失败”

使用 5.7.25 运行 InnoDB 集群(计划很快迁移到 8.0) 我的两个实例由于网络问题离开了集群,剩下一个健康的节点。

我正在执行以下过程以将节点添加到集群,但失败并显示如下错误。

我究竟做错了什么 ?

注意:host1 是留在集群中的健康节点。host2 是加入的人

host1 上的程序:

  1. super_read_only = ON
  2. 使用以下命令复制最后的 GTID:select @@global.gtid_executed;
  3. 设置super_read_only = OFF(就在主机 2 上的第 3 步之前)

host2 上的程序:

  1. 停止mysql
  2. rsync 来自 host1 的 mysql 数据目录,使用: rsync -Parvz --exclude="auto.cnf" --exclude="<host1>*" --exclude="binlog.*" <user>@<host1>:/mysql-data/* .
  3. 启动mysql
  4. 清除复制日志并设置 GTID 使用:
  1. 连接到 MySQL Shell 并将新节点 (host2) 添加到集群: cluster.addInstance('root@host2:3306', {ipWhitelist: 'host1, host2'})

来自无法加入的新实例(host2)的日志: