MySQL NDB集群初始配置

NDB集群初始配置
在本节中,我们将通过创建和编辑配置文件来讨论已安装的NDB集群的手动配置。
群集节点和主机。
节点 IP地址

管理节点(mgmd)                        10.10.10.102
SQL节点(mysqld)                       10.10.10.103
数据节点A(ndbd)                       10.10.10.104
数据节点B(ndbd)                       10.10.10.105

NDB Cluster还提供了一个GUI安装程序,可用于执行配置,而无需在单独的应用程序中编辑文本文件。要了解更多信息,请参见第21.2.1 节“NDB集群”Auto-Installer”。

对于我们的四节点、四主机的NDB集群(请参阅集群节点和主机),有必要编写四个配置文件,每个节点主机一个。
.每个数据节点或SQL节点都需要一个my.cnf文件,该文件提供两条信息:一个连接字符串,告诉节点在哪里找到管理节点,另一行告诉该主机( 承载数据节点的机器)上的MySQL服务器启用NDBCLUSTER存储引擎。

.管理节点需要一个config.ini文件,告诉它要维护多少个副本、为每个数据节点上的数据和索引分配多少内存、在哪里找到数据节点、在哪里 将数据保存到每个数据节点的磁盘上,以及在哪里找到SQL节点。

配置数据节点和SQL节点。
数据节点所需的my.cnf文件相当简单。配置文件应该位于/etc目录下,可以使用任何文本编辑器进行编辑。(如果该文件不存在,则创建该文件 。)例如:

shell> vi /etc/my.cnf

对于我们的示例设置中的每个数据节点和SQL节点,my.cnf应该是这样的:

[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=10.10.10.102 # location of management server

输入上述信息后,保存该文件并退出文本编辑器。对承载数据节点“A”、数据节点“B”和SQL节点的机器执行此操作。
SQL节点:

[root@mysqld /]# vi /etc/my.cnf
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=10.10.10.102 # location of management server

数据节点A:

[root@ndbda /]# vi /etc/my.cnf
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=10.10.10.102 # location of management server

数据节点B:

[root@ndbdb /]# vi /etc/my.cnf
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=10.10.10.102 # location of management server

如前所示,一旦你用my.cnf文件的[mysqld]和[mysql_cluster]部分中的ndbcluster和ndbconnectstring参数启动了mysqld进程,你就不能在没 有实际启动集群之前执行任何CREATE TABLE或ALTER TABLE语句。否则,这些语句将失败并报错。这是设计的结果。

配置管理节点。
配置管理节点的第一步是创建可以找到配置文件的目录,然后创建文件本身。例如(以root身份运行):

[root@mgmd /]# mkdir /var/lib/mysql-cluster
[root@mgmd /]# cd /var/lib/mysql-cluster

对于我们的典型设置,config.ini文件应该如下所示:

[root@mgmd mysql-cluster]# vi config.ini
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2      # Number of replicas
DataMemory=1024M    # How much memory to allocate for data storage
IndexMemory=256M    # How much memory to allocate for index storage
                    # For DataMemory and IndexMemory, we have used the
                    # default values. Since the "world" database takes up
                    # only about 500KB, this should be more than enough for
                    # this example NDB Cluster setup.
ServerPort=2202     # This the default value; however, you can use any
                    # port that is free for all the hosts in the cluster
                    # Note1: It is recommended that you do not specify the port
                    # number at all and simply allow the default value to be used
                    # instead
                    # Note2: The port was formerly specified using the PortNumber
                    # TCP parameter; this parameter is no longer available in NDB
                    # Cluster 7.5.
[ndb_mgmd]
# Management process options:
HostName=10.10.10.102            # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster     # Directory for MGM node log files
[ndbd]
# Options for data node "A":
HostName=10.10.10.104            # Hostname or IP address
NodeId=2                           # Node ID for this data node
DataDir=/usr/local/mysql/data      # Directory for this data node's data files
[ndbd]
# Options for data node "B":
HostName=10.10.10.105            # Hostname or IP address
NodeId=3                           # Node ID for this data node
DataDir=/usr/local/mysql/data      # Directory for this data node's data files
[mysqld]
# SQL node options:
HostName=10.10.10.103            # Hostname or IP address
                                   # (additional mysqld connections can be
                                   # specified for this node for various
                                   # purposes such as running ndb_restore)
~

在创建了所有配置文件并指定了这些最小选项之后,就可以继续启动集群并验证所有进程都在运行。

集群管理节点的默认端口为1186;数据节点默认端口为“2202”。但是,集群可以从已经空闲的端口中自动为数据节点分配端口。

NDB集群初始启动
在配置完集群之后,启动集群并不是很困难。每个集群节点进程必须在其所在的主机上单独启动。首先应该启动管理节点,然后是数据节点,最 后是任何SQL节点:
1.在管理主机上,在系统shell中执行如下命令启动管理节点进程:

[root@mgmd /]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql-5.7.48 ndb-7.5.36
2025-05-22 18:26:23 [MgmtSrvr] INFO     -- The default config directory '/usr/local/mysql/mysql-cluster' does not exist.  Trying to create it...
Failed to create directory '/usr/local/mysql/mysql-cluster', error: 2
2025-05-22 18:26:23 [MgmtSrvr] ERROR    -- Could not create directory '/usr/local/mysql/mysql-cluster'. Either create it  manually or specify a different directory with --configdir=
[root@mgmd /]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster
MySQL Cluster Management Server mysql-5.7.48 ndb-7.5.36
[root@mgmd /]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1527/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      13043/cupsd
tcp        0      0 0.0.0.0:1186            0.0.0.0:*               LISTEN      26104/ndb_mgmd
tcp6       0      0 :::22                   :::*                    LISTEN      1527/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      13043/cupsd

在第一次启动ndb_mgmd时,必须使用-f或——config-file选项告诉它在哪里可以找到它的配置文件

2.在所有数据节点主机上执行如下命令启动ndbd进程:
数据节点A:

[root@ndbda /]# ndbd
2025-05-22 18:34:35 [ndbd] INFO     -- Angel connected to '10.10.10.102:1186'
2025-05-22 18:34:35 [ndbd] INFO     -- Angel allocated nodeid: 2
[root@ndbda /]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1527/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      11765/cupsd
tcp        0      0 10.10.10.104:2202     0.0.0.0:*               LISTEN      25455/ndbd
tcp6       0      0 :::22                   :::*                    LISTEN      1527/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      11765/cupsd

数据节点B:

[root@ndbdb /]# ndbd
2025-05-22 18:35:08 [ndbd] INFO     -- Angel connected to '10.10.10.102:1186'
2025-05-22 18:35:08 [ndbd] INFO     -- Angel allocated nodeid: 3
[root@ndbdb /]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1526/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      13086/cupsd
tcp        0      0 10.10.10.105:2202     0.0.0.0:*               LISTEN      26140/ndbd
tcp6       0      0 :::22                   :::*                    LISTEN      1526/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      13086/cupsd

3.如果您使用RPM文件在SQL节点所在的集群主机上安装MySQL,则可以(并且应该)使用提供的启动脚本在SQL节点上启动MySQL服务器进程。

[root@mysqld mysql]# service mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/mysqld.err'.
. SUCCESS!

[root@mysqld mysql]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1529/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      13038/cupsd
tcp6       0      0 :::3306                 :::*                    LISTEN      26418/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      1529/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      13038/cupsd

如果一切顺利,并且集群已经正确设置,那么集群现在应该可以运行了。你可以通过调用ndb_mgm管理节点客户端来测试这一点。输出应该如下 所示,不过你可能会发现不同版本的MySQL的输出略有不同:

[root@mgmd /]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @10.10.10.104  (mysql-5.7.48 ndb-7.5.36, Nodegroup: 0, *)
id=3    @10.10.10.105  (mysql-5.7.48 ndb-7.5.36, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.10.10.102  (mysql-5.7.48 ndb-7.5.36)

[mysqld(API)]   1 node(s)
id=4    @10.10.10.103  (mysql-5.7.48 ndb-7.5.36)

ndb_mgm>

SQL节点在这里被引用为[mysqld(API)],这反映了mysqld进程作为NDB集群API节点的事实。

SHOW命令输出中显示的给定NDB Cluster SQL或其他API节点的IP地址是SQL或API节点连接到集群数据节点的地址,而不是连接到任何管理节点的 地址。

现在您应该已经准备好处理NDB Cluster中的数据库、表和数据了

Linux下安装二进制版本的NDB集群

Linux下安装二进制版本的NDB集群
本节介绍从Oracle提供的预编译二进制文件中为每种类型的Cluster节点安装正确的可执行文件所需的步骤。
群集节点和主机。
节点 IP地址

管理节点(mgmd)                        10.10.10.102
SQL节点(mysqld)                       10.10.10.103
数据节点A(ndbd)                       10.10.10.104
数据节点B(ndbd)                       10.10.10.105

要使用预编译的二进制文件设置集群,安装过程中的第一步是从NDB cluster下载区域(https://dev.mysql.com/downloads/cluster/)下载最新 的NDB cluster 7.5二进制归档文件(mysql-cluster-gpl-7.5.9-linuxi686- glibc23.tar.gz)。我们假设您已经将这个文件放在每台机器 的/var/tmp目录中。

完成安装后,不要启动任何二进制文件。我们将在节点配置之后向您展示如何这样做。

SQL节点。
在指定用于承载SQL节点的每台机器上,以root用户的身份执行以下步骤:
1.检查/etc/passwd和/etc/group文件(或者使用操作系统提供的用于管理用户和组的工具),看看系统上是否已经有mysql组和mysql用户。一 些OS发行版在操作系统安装过程中创建了这些文件。如果没有,创建一个新的mysql用户组,然后添加一个mysql用户到这个组:

shell> groupadd mysql
shell> useradd -g mysql -s /bin/false mysql

useradd和groupadd的语法在不同版本的Unix上可能略有不同,或者它们可能具有不同的名称,例如adduser和addgroup。

2.将位置更改为包含下载文件的目录,解压缩归档文件,并创建一个名为mysql的符号链接到mysql目录。实际的文件和目录名称会根据NDB Cluster的版本号而有所不同。

[root@mysqld /]# cd /soft
[root@mysqld soft]# tar -C /usr/local -xzvf mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64.tar.gz
[root@mysqld soft]# ln -s /usr/local/mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64 /usr/local/mysql
[root@mysqld local]# cd /usr/local
[root@mysqld local]# ll
total 4
drwxr-xr-x.  2 root root    6 May  8  2014 bin
drwxr-xr-x.  2 root root    6 May  8  2014 etc
drwxr-xr-x.  2 root root    6 May  8  2014 games
drwxr-xr-x.  2 root root    6 May  8  2014 include
drwxr-xr-x.  2 root root    6 May  8  2014 lib
drwxr-xr-x.  2 root root    6 May  8  2014 lib64
drwxr-xr-x.  2 root root    6 May  8  2014 libexec
lrwxrwxrwx.  1 root root   58 May 20 18:43 mysql -> /usr/local/mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64
drwxr-xr-x. 10 root root 4096 May 20 18:36 mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64
drwxr-xr-x.  2 root root    6 May  8  2014 sbin
drwxr-xr-x.  5 root root   46 Oct 12  2017 share
drwxr-xr-x.  2 root root    6 May  8  2014 src
[root@mysqld local]#

3.将位置更改为mysql目录,并使用mysqld—initialize设置系统数据库,如下所示:

[root@mysqld local]# cd mysql
[root@mysqld mysql]# bin/mysqld --initialize
2025-05-20T10:55:27.199844Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use -- explicit_defaults_for_timestamp server option (see documentation for more details).
2025-05-20T10:55:27.381088Z 0 [Warning] InnoDB: New log files created, LSN=45790
2025-05-20T10:55:27.419222Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2025-05-20T10:55:27.475136Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this  server has been started. Generating a new UUID: f068b8ae-3568-11f0-89cb-005056a04e7f.
2025-05-20T10:55:27.476044Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2025-05-20T10:55:28.436286Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2025-05-20T10:55:28.436307Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2025-05-20T10:55:28.439870Z 0 [Warning] CA certificate ca.pem is self signed.
2025-05-20T10:55:28.910740Z 1 [Note] A temporary password is generated for root@localhost: w9fh;K>W-tH2


[root@mysqld mysql]# ll
total 284
drwxr-xr-x.  2 root root    4096 May 20 18:36 bin
drwxr-x---.  6 root root    4096 May 20 18:55 data
drwxr-xr-x.  2 root root      69 May 20 18:36 docs
drwxr-xr-x.  4 root root    4096 May 20 18:35 include
drwxr-xr-x.  5 root root    4096 May 20 18:36 lib
-rw-r--r--.  1 7161 31415 255108 Sep 26  2024 LICENSE
drwxr-xr-x.  4 root root      28 May 20 18:36 man
drwxr-xr-x. 10 root root    4096 May 20 18:36 mysql-test
-rw-r--r--.  1 7161 31415    566 Sep 26  2024 README
-rw-r--r--.  1 7161 31415    566 Sep 26  2024 README-test
drwxr-xr-x. 29 root root    4096 May 20 18:36 share
drwxr-xr-x.  2 root root      86 May 20 18:36 support-files

这将为MySQL root账户生成一个随机密码。如果不希望生成随机密码,可以用——initialize-insecure选项替换——initialize。

或者,你可以将位置更改为mysql目录,然后运行mysql_install_db来创建系统数据库:

shell> cd mysql
shell> bin/mysql_install_db --user=mysql

但是,由于mysql_install_db已被废弃,因此不推荐使用此方法,因此在未来的版本中可能会被删除。

4.设置MySQL服务器和数据目录的必要权限:

[root@mysqld mysql]# chown -R root .
[root@mysqld mysql]# chown -R mysql data
[root@mysqld mysql]# chgrp -R mysql .
[root@mysqld mysql]# ll
total 284
drwxr-xr-x.  2 root  mysql   4096 May 20 18:36 bin
drwxr-x---.  6 mysql mysql   4096 May 20 18:55 data
drwxr-xr-x.  2 root  mysql     69 May 20 18:36 docs
drwxr-xr-x.  4 root  mysql   4096 May 20 18:35 include
drwxr-xr-x.  5 root  mysql   4096 May 20 18:36 lib
-rw-r--r--.  1 root  mysql 255108 Sep 26  2024 LICENSE
drwxr-xr-x.  4 root  mysql     28 May 20 18:36 man
drwxr-xr-x. 10 root  mysql   4096 May 20 18:36 mysql-test
-rw-r--r--.  1 root  mysql    566 Sep 26  2024 README
-rw-r--r--.  1 root  mysql    566 Sep 26  2024 README-test
drwxr-xr-x. 29 root  mysql   4096 May 20 18:36 share
drwxr-xr-x.  2 root  mysql     86 May 20 18:36 support-files

5.将MySQL启动脚本复制到相应的目录,使其可执行,并设置为在操作系统启动时启动:

[root@mysqld mysql]# cp support-files/mysql.server /etc/rc.d/init.d/
[root@mysqld mysql]# chmod +x /etc/rc.d/init.d/mysql.server
[root@mysqld mysql]# chkconfig --add mysql.server

(启动脚本目录可能因操作系统和版本而异——例如,在某些Linux发行版中,它是/etc/init.d。)

这里我们使用Red Hat的chkconfig来创建指向启动脚本的链接;在您的平台上使用任何适合于此目的的方法,例如在Debian上的update-rc。

请记住,必须在驻留SQL节点的每台机器上重复上述步骤。

数据节点。
数据节点的安装不需要mysqld二进制文件。只需要NDB集群数据节点可执行文件ndbd(单线程)或ndbmtd(多线程)。这些二进制文件也可以 在.tar.gz存档文件中找到。同样,我们假设您已将此归档文件放在/soft中

作为系统root用户(即使用sudo、su root或系统中同等的工具暂时拥有系统管理员帐户的权限),执行以下步骤在数据节点主机上安装数据节 点二进制文件:
数据节点A:
1.将位置更改为/soft目录,并将ndbd和ndbmtd二进制文件从归档文件中提取到合适的目录中,例如/usr/local/bin:

[root@ndbda ~]# cd /soft
[root@ndbda soft]# tar -zxvf mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64.tar.gz
[root@ndbda soft]# cd mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64
[root@ndbda mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cp bin/ndbd /usr/local/bin/ndbd
[root@ndbda mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cp bin/ndbmtd /usr/local/bin/ndbmtd
[root@ndbda mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# ll /usr/local/bin/ndb*
-rwxr-xr-x. 1 root root 43410615 May 22 00:28 /usr/local/bin/ndbd
-rwxr-xr-x. 1 root root 43697940 May 22 00:28 /usr/local/bin/ndbmtd

(在将ndb_mgm和ndb_mgmd复制到可执行目录后,您可以通过解压缩下载的存档文件及其包含的文件,从/soft中安全地删除创建的目录。)

2.将位置更改为复制文件的目录,然后使它们都可执行:

[root@ndbda mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cd /usr/local/bin
[root@ndbda bin]# chmod +x ndb*
[root@ndbda bin]# ll ndb*
-rwxr-xr-x. 1 root root 43410615 May 22 00:28 ndbd
-rwxr-xr-x. 1 root root 43697940 May 22 00:28 ndbmtd

上述步骤应在每个数据节点主机上重复执行。
数据节点B:
1.将位置更改为/soft目录,并将ndbd和ndbmtd二进制文件从归档文件中提取到合适的目录中,例如/usr/local/bin:

[root@ndbdb ~]# cd /soft
[root@ndbdb soft]# tar -zxvf mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64.tar.gz
[root@ndbdb soft]# cd mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64
[root@ndbdb mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cp bin/ndbd /usr/local/bin/ndbd
[root@ndbdb mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cp bin/ndbmtd /usr/local/bin/ndbmtd
[root@ndbdb mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# ll /usr/local/bin/ndb*
-rwxr-xr-x. 1 root root 43410615 May 22 00:28 /usr/local/bin/ndbd
-rwxr-xr-x. 1 root root 43697940 May 22 00:28 /usr/local/bin/ndbmtd

(在将ndb_mgm和ndb_mgmd复制到可执行目录后,您可以通过解压缩下载的存档文件及其包含的文件,从/soft中安全地删除创建的目录。)

2.将位置更改为复制文件的目录,然后使它们都可执行:

[root@ndbda mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cd /usr/local/bin
[root@ndbda bin]# chmod +x ndb*
[root@ndbdb bin]# ll ndb*
-rwxr-xr-x. 1 root root 43410615 May 22 00:44 ndbd
-rwxr-xr-x. 1 root root 43697940 May 22 00:45 ndbmtd

管理节点。
管理节点的安装不需要mysqld二进制文件。只需要NDB集群管理服务器(ndb_mgmd);您很可能还想安装管理客户端(ndb_mgm)。这两个二进制 文件也可以在.tar.gz存档文件中找到。同样,我们假设您已将此归档文件放在/soft中。

以系统root用户在管理节点主机上安装“ndb_mgmd”和“ndb_mgm”。

1.将位置更改为/soft目录,并将ndb_mgm和ndb_mgmd从归档文件中提取到合适的目录,例如/usr/local/bin:

[root@mgmd /]# cd /soft
[root@mgmd soft]# tar -zxvf mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64.tar.gz
[root@mgmd soft]# cd mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64
[root@mgmd mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cp bin/ndb_mgm* /usr/local/bin
[root@mgmd mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# ll /usr/local/bin/ndb_mgm*
-rwxr-xr-x. 1 root root 11862623 May 22 16:41 /usr/local/bin/ndb_mgm
-rwxr-xr-x. 1 root root 21989718 May 22 16:41 /usr/local/bin/ndb_mgmd

(一旦将ndb_mgm和ndb_mgmd拷贝到可执行文件目录,你就可以安全地从/var/tmp目录中删除下载的归档文件及其包含的文件。)

2.将位置更改为复制文件的目录,然后使它们都可执行:

[root@mgmd mysql-cluster-gpl-7.5.36-linux-glibc2.12-x86_64]# cd /usr/local/bin
[root@mgmd bin]# chmod +x ndb_mgm*
[root@mgmd bin]# ll ndb_mgm*
-rwxr-xr-x. 1 root root 11862623 May 22 16:41 ndb_mgm
-rwxr-xr-x. 1 root root 21989718 May 22 16:41 ndb_mgmd