在 MySQL 集群中,我有三台主机,一台带有管理器节点,另外两台都是数据节点和 sql 节点。可以连接到管理器,但是只能作为 [ndbd] 而不是 [mysqld]... 这意味着管理器将它们视为数据节点而不是 sql 节点。除了“未连接”部分之外,一切看起来都应该如此,并且我没有收到任何错误消息。所以我的问题是为什么管理器节点只将每台机器识别为数据节点而不是 mysql 节点?
下面你可以看到 ndb_mgm 集群配置,后面跟着 config.ini 的内容:
集群配置 --------------------- [ndbd(NDB)] 2 个节点 id=2 @10.0.40.105 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master) id=3 @10.0.40.100(mysql-5.5.25 ndb-7.2.7,节点组:0) [ndb_mgmd(MGM)] 1 个节点 id=1 @10.0.40.119 (mysql-5.5.25 ndb-7.2.7) [mysqld(API)] 2 个节点 id=4(未连接,接受来自任何主机的连接) id=5(未连接,接受来自任何主机的连接)
配置.ini:
[ndbd 默认] # 影响所有数据节点上 ndbd 进程的选项: NoOfReplicas=2 #副本数 [tcp 默认] # TCP/IP 选项: [ndb_mgmd] # 管理进程选项: hostname=10.0.40.119 #MGM节点的主机名或IP地址 datadir=/var/lib/mysql-cluster # MGM 节点日志文件目录 节点 ID=1 [ndbd] # 数据节点 1 的选项: #(每个数据节点一个 [ndbd] 部分) hostname=10.0.40.105 #主机名或IP地址 datadir=/usr/local/mysql/data # 这个数据节点的数据文件的目录 节点 ID=2 [ndbd] # 数据节点 2 的选项: hostname=10.0.40.100 #主机名或IP地址 datadir=/usr/local/mysql/data # 这个数据节点的数据文件的目录 节点 ID=3 #one [mysqld] 每个存储节点 [mysqld] [mysqld]
/etc/my.cnf:
[mysqld] ndbcluster ndb-connectstring=10.0.40.119 [mysql_cluster] ndb-connectstring=10.0.40.119
我对启动mysqld有些困惑。我启动每个节点的过程如下:
ndb_mgmd:
ndb_mgmd --initial --skip-config-cache -f /var/lib/mysql-cluster/config.ini ndb_mgm
ndbd/mysqld:
ndbd——初始 /etc/init.d/mysql.server 启动