gpt4 book ai didi

MySQL集群传播

转载 作者:可可西里 更新时间:2023-11-01 08:20:58 27 4
gpt4 key购买 nike

我在 Ubuntu 上创建了一个 MySQL 集群导游:http://bieg.wordpress.com/2008/08/03/mysql-clustering-ubuntu/

我正确地初始化了节点(具有 MGM 和 NDB 的节点,以及其他 NDB 节点)ndb_mgm> show; 返回:

Connected to Management Server at: 10.168.222.24:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.168.222.24 (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0)
id=3 @10.160.91.224 (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.168.222.24 (mysql-5.1.51 ndb-7.1.9)

[mysqld(API)] 1 node(s)
id=4 @10.168.222.24 (mysql-5.1.51 ndb-7.1.9)

但是,当我去测试集群时,我在两个节点上都创建了一个数据库,但是我在一个节点中创建的表不会传播到另一个节点,内容也不会传播。

可能是什么问题?

谢谢

最佳答案

默认情况下,在 MySQL 5.1 中,表是使用 MyISAM 存储引擎创建的(在 MySQL 5.5 中默认更改为 InnoDB)。使用除 ndb/cluster 之外的任何存储创建的任何表对于单个 MySQL 服务器都是本地的。

要将数据存储在数据节点中并因此通过集群中的所有 MySQL 服务器可见,您需要指定 NDB 用作存储引擎。例如,创建表时...

CREATE TABLE simples (id INT NOT NULL PRIMARY KEY) ENGINE=ndb;

或迁移现有表...

ALTER TABLE simples ENGINE=ndb;

在您的情况下,ndb_mgm 的输出显示您只有一个 MySQL 服务器,您应该编辑 config.ini 文件以定义更多 [mysqld] 槽,然后启动其他 mysqld 进程。

为什么你认为数据只存储在一个数据节点中?如果您使用 engine=ndb 创建它,那么我很确定它在两者中。

请注意,您正在关注的博客文章确实已过时(例如,您不得使用通过“apt-get install mysql-server”获得的 MySQL 服务器,而应使用随附的 MySQL 服务器在 https://www.mysql.com/downloads/cluster/ 的集群包中

下载并使用 MySQL Cluster 7.2 而不是 7.1。

可以在 http://www.clusterdb.com/mysql-cluster/deploying-mysql-cluster-over-multiple-hosts/ 中找到更多最新的指令集。

关于MySQL集群传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627947/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com