1.准备环境 CentOS Linux release 7.7.1908 关闭 firewalld systemctl stop firewalld.service systemctl disable firewalld.service
关闭selinux setenforce 0 sed -i 's/=enforcing/=disabled/g' etc/selinux/config
2.规划 10.104.9.233 管理节点(MGM) 10.104.9.166 数据节点(NDB)+MySQL节点(API) 10.104.9.190 数据节点(NDB)+MySQL节点(API)
3.下载mysql-cluster-gpl-7.5.1 官方下载:https://cdn.mysql.com//archives/mysql-cluster-gpl-7.5/mysql-cluster-gpl-7.5.11-linux-glibc2.12-x86_64.tar.gz国内镜像:https://mirror.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.14-linux-glibc2.12-x86_64.tar.gz将下载好的文件通过sftp 将文件传输到 /usr/local tar zxvf mysql-cluster-gpl-7.5.11-linux-glibc2.12-x86_64.tar.gz 将解压后目录改名为mysql(/usr/local/mysql) mv mysql-cluster-gpl-7.5.11-linux-glibc2.12-x86_64.tar.gz mysql
4.MGM(管理节点) 安装步骤: 将 NDM_MGM 拷到系统目录下 ,并且赋予执行权限 方便使用 cp bin/ndb_mgm /usr/local/bin cd /usr/local/bin chmod +x ndb_mgm
新建配置文件 && 初始化管理节点 mkdir /var/lib/mysql-cluster mkdir /usr/local/mysql vi /var/lib/mysql-cluster/config.ini
[ndbd default] NoOfReplicas=2 DataMemory=512M IndexMemory=18M
[ndb_mgmd] HostName=10.147.4.134 DataDir=/var/lib/mysql-cluster
[ndbd] HostName=10.147.4.189 DataDir=/var/lib/mysql-cluster
[ndbd] HostName=10.147.4.190 DataDir=/var/lib/mysql-cluster
[mysqld] HostName=10.147.4.189
[mysqld] HostName=10.147.4.190
初始化管理节点 /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
5.安装 && 配置数据节点 和 MySQL节点 以下的所有操作需要在所有的集群节点都要进行相同的操作!!!新增 用户和用户组 groupadd mysql useradd -g mysql -s /bin/false mysql
新建文件夹并赋予权限 mkdir /var/lib/mysql-cluster chown root:mysql /var/lib/mysql-cluster
进入/usr/local/mysql执行 cd /usr/local/mysql chown -R root . mkdir data chown -R mysql data chgrp -R mysql . cp support-files/mysql.server /etc/rc.d/init.d/ chmod +x /etc/rc.d/init.d/mysql.server chkconfig --add mysql.server
vi /etc/my.cnf [mysqld] basedir = /usr/local/mysql log-error= /usr/local/mysql/data/mysql.log pid-file= /usr/local/mysql/data/mysql.pid user = mysql tmpdir = /tmp datadir=/usr/local/mysql/data socket=/usr/local/mysql/data/mysql.sock ndbcluster ndb-connectstring=10.147.4.134 max_allowed_packet=512M [mysql_cluster] ndb-connectstring=10.147.4.134
[client] socket=/usr/local/mysql/data/mysql.sock
初始化 MySQL /usr/local/mysql/bin/mysqld --initialize 查看初始密码 cat /usr/local/mysql/data/mysql.log |grep password
启动mysql /etc/init.d/mysql.server start
修改root密码 mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'ipi.i314'; use mysql; UPDATE user SET HOST = '%' WHERE USER ='root';
启动NDB /usr/local/mysql/bin/ndbd --initial
查看集群状态 ndb_mgm -e "SHOW"
使用Navicat for MySQL 创建两台连接,在任意一个连接创建数据库/表/记录 你会发现所有连接的数据都是同步的
注:建表时请注意 存储引擎 为 ENGINE=NDBCLUSTER,如:CREATE TABLE test
.Untitled
(id
int(0) NOT NULL AUTO_INCREMENT,name
varchar(255),sex
tinyint(1),msisdn
varchar(11),
PRIMARY KEY (id
)
) ENGINE = ndbcluster;
select concat("ALTER TABLE mms
.",table_name,"
ENGINE = ndbcluster;")
from information_schema.tables where table_schema='mms' and ENGINE != 'ndbcluster';
启动顺序:MGM初始化 —》 MySQL节点启动 —》 NDB启动