3

在 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 启动
4

1 回答 1

4

您尚未my.cnf为您显示文件,mysqlds但我的猜测是您在其[mysqld]部分中缺少以下两行之一:

ndbcluster

ndb-connectstring=10.0.40.119:1186

好的 - 所以你已经在my.cnf文件中定义了这些参数。

接下来要检查 - 您是否使用mysqldMySQL Cluster 附带的(即不是“常规” mysqld- 不支持)?

尝试从选项开始mysqld--verbose看看是否有更多线索。查看集群日志(应该在/var/lib/mysql-cluster文件夹中的10.0.40.119上。查看由.mysqld

于 2012-08-13T15:09:16.827 回答