MYSQL集群搭建
1、系统环境
服务器 | 角色 | 版本 |
---|---|---|
192.168.10.16 | 管理服务器(MGM) | mysql-5.6.29 ndb-7.4.11 |
192.168.10.17 | 数据节点(NDB)、SQL节点(API) | mysql-5.6.29 ndb-7.4.11 |
192.168.10.18 | 数据节点(NDB)、SQL节点(API) | mysql-5.6.29 ndb-7.4.11 |
2、软件环境
MySQL集群版本:
mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
3、搭建集群(Linux环境)
安装MySQL(所有)
上传:
/usr/local/
解压:
tar -xvf mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
重命名:
mv mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64 mysql
授权:
chown -R mysql:mysql /usr/local/mysql
安装:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
设置MySQL环境变量:
关闭防火墙:
集群配置:
MGM:
创建文件夹:
mkdir /var/lib/mysql-cluster
创建配置文件:
vim config.ini
[ndbd default] NoOfReplicas=1 # 副本数 [ndb_mgmd] # 管理节点配置 NodeId=1 #id不能重复 HostName=192.168.10.16 DataDir=/var/lib/mysql-cluster [ndbd] # 数据节点配置 NodeId=2 HostName=192.168.10.17 DataDir=/usr/local/mysql/data [ndbd] # 数据节点配置 NodeId=3 HostName=192.168.10.18 DataDir=/usr/local/mysql/data [mysqld] # SQL节点配置 NodeId=4 HostName=192.168.10.17 [mysqld] # SQL节点配置 NodeId=5 HostName=192.168.10.18 [mysqld] # 一定要留一个空的,不然会报 not free node id found for ndbd[NDB]错误
配置的时候记得把# 注释删掉
NDB:
创建配置文件:
vim /etc/my.cnf
[mysqld] ndbcluster basedir=/usr/local/mysql datadir=/usr/local/mysql/data port=3306 [mysql_cluster] ndb-connectstring=192.168.10.16
API:
由于在同一台机器上就不做配置。
集群启动:
MGM:
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。
NDB:
/usr/local/mysql/bin/ndbd --initial
与上同理。
API:
/usr/local/mysql/bin/mysqld_safe
修改密码:/usr/local/mysql/bin/mysqladmin -u root password 'password';
4、测试:
MGM节点:/usr/local/mysql/bin/ndb_mgm
进入ndb_mgm后 show
则显示当前集群信息,如果所有节点都已连接,则开始下一步验证。非则就按上述步骤核对。
验证:
在SQL节点登录,创建库:create database t1;如果其他SQL节点也出现了这个库则为正常。
创建表:use t1; create table test(id int(5),name varchar(5)) ENGINE=NDB ; (这一配置尤为重要。否则不会同步) 如果其他节点也出现了这个表则为正常。
生产数据: insert into t1(id,name) value(1,'a'); 如果其他系欸按也出现条数据。则为正常。
5、至此结束。是不是很简单那。