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