【总结+转载】MySQL Cluster MySQL集群搭建笔记

MySQL Cluster使用的安装包是mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64.tar.gz

上传mysql安装包至服务器 /home/ 目录下

拓扑结构图如下:

系统环境

服务器

角色

系统

192.168.2.150

管理节点(NDB_MGMD)

Center OS 7 64位

192.168.2.151

数据节点&SQL节点(MYSQLD&NBDB)

Center OS 7 64位

192.168.2.152

数据节点&SQL节点(MYSQLD&NBDB)

Center OS 7 64位

 

配置管理节点,进入192.168.2.150 ssh root@192.168.2.150

 

一、准备工作

1、创建mysql用户组和用户

~]# groupadd mysql

~]# useradd mysql -g mysql

二、安装mysql-cluster

解压

~]# tar -xzvf /home/mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64.tar.gz

移动到 /usr/local/mysql

~]# mv /home/mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql

~]# chown -R mysql:mysql /usr/local/mysql

~]# mkdir -p /data/mysql/var/data

~]# chown -R mysql:mysql /data/mysql/var/data

切换mysql用户

~]# su - mysql

安装mysql

~]# /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/var/data --user=mysql

三、修改mysql 主配置文件 /etc/my.cnf (管理节点)

~]# vi /etc/my.cnf

[MYSQLD]

user = mysql

socket = /tmp/mysql.sock

basedir = /usr/local/mysql #安装目录

datadir = /data/mysql/var/data #数据库数据存放目录

character-set-server=UTF8

ndbcluster #运行NDB存储引擎

ndb-connectstring=192.168.2.150

lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的

[MYSQL_CLUSTER]

ndb-connectstring=192.168.2.150 #Mysql Cluster管理节点IP

四、修改mysql集群配置文件(管理节点)

~]# vi /var/lib/mysql-cluster/config.ini

[NDBD DEFAULT]

NoOfReplicas=2

[NDB_MGMD]

#设置管理节点服务器

Nodeid=1

HostName=192.168.2.150

DataDir=/var/lib/mysql-cluster #存放的是管理节点产生的日志和pid文件

[NDBD]

Nodeid=2

HostName=192.168.2.151

DataDir=/data/mysql/var/data/3306

[NDBD]

Nodeid=3

HostName=192.168.2.152

DataDir=/data/mysql/var/data/3306

[MYSQLD]

Nodeid=4

HostName=192.168.2.151

[MYSQLD]

Nodeid=5

HostName=192.168.2.152

#必须有空的mysqld节点,不然数据节点断开后启动有报错

[MYSQLD]

Nodeid=6

[mysqld]

Nodeid=7

~]# chown mysql:mysql /var/lib/mysql-cluster/config.ini

切换用户

~]# su - mysql

启动管理节点

~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

  • 备注:命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。

五、配置数据节点和SQL节点

由于测试环境下数据节点和SQL节点在同一台服务器即192.168.2.151即是数据节点也是SQL节点(192.168.2.152 相同)。因此下面配置适用于两台服务器

进入192.168.2.151服务器 ssh root@192.168.2.151

mysql-cluster安装过程同管理节点相同,下面主要说配置

1、修改mysql 主配置文件 /etc/my.cnf (数据节点 & SQL节点)

~]# vi /etc/my.cnf

[MYSQLD]

user=mysql

character_set_server=utf8

ndbcluster

ndb-connectstring=192.168.2.150

default-storage-engine=ndbcluster #设置默认是NDB存储引擎

datadir=/data/mysql/var/data/3306

basedir=/usr/local/mysql

[MYSQL_CLUSTER]

ndb-connectstring=192.168.2.150 #mysql cluster 管理节点IP

2、使用systemctl创建mysqld的启动文件

~]# vi /usr/lib/systemd/system/mysqld.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

 

[Install]

WantedBy=multi-user.target

 

[Service]

User=mysql

oroup=mysql

ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql

ExecStop=/usr/local/mysql/bin/mysqladmin -uroot stop

LimitNOFILE = 5000

将mysql加入开机启动

~]# systemctl enable mysqld.service

 

192.168.2.152的配置同上

 

六、测试(如果不对iptables进行配置则先关闭iptables, ~]# systemctl stop iptables.service)

启动数据节点

~]# /usr/local/mysql/bin/nbd --initial

  • 备注:命令行中的nbd是mysql cluster的数据服务器,--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。

启动SQL节点

~]# systemctl start mysqld.service

查看集群状态

~]# /usr/local/mysql/bin/ndb_mgm -e show #显示管理节点和数据节点则配置成功

Connected to Management Server at: 192.168.2.150:1186

Cluster Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=2 @192.168.2.151 (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *)

id=3 @192.168.2.152 (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.2.150 (mysql-5.7.22 ndb-7.6.6)

 

[mysqld(API)] 4 node(s)

id=4 @192.168.2.151 (mysql-5.7.22 ndb-7.6.6)

id=5 @192.168.2.152 (mysql-5.7.22 ndb-7.6.6)

id=6 (not connected, accepting connect from any host)

id=7 (not connected, accepting connect from any host)

 

可以看到管理服务器为192.168.2.150

Connected to Management Server at: 192.168.2.150:1186

管理节点(ndb_mgmd)为192.168.2.150

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.2.150 (mysql-5.7.22 ndb-7.6.6)

数据节点(ndbd)为192.168.2.151、192.168.2.152

[ndbd(NDB)] 2 node(s)

id=2 @192.168.2.151 (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *)

id=3 @192.168.2.152 (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0)

SQL节点(mysqld)为192.168.2.151、192.168.2.152

[mysqld(API)] 4 node(s)

id=4 @192.168.2.151 (mysql-5.7.22 ndb-7.6.6)

id=5 @192.168.2.152 (mysql-5.7.22 ndb-7.6.6)

id=6 (not connected, accepting connect from any host)

id=7 (not connected, accepting connect from any host)

 

在SQL节点192.168.2.151上创建数据库并插入数据验证是否自动同步至192.168.2.152

~]# mysql -uroot -proot

mysql> create database cluster_test;

mysql> use cluster_test;

mysql> create table test(id int) engine=ndbcluster;#指定数据库表的引擎为NDB,否则同步失败

mysql> insert into test(id) values(1);

mysql> insert into test(id) values(2);

mysql> insert into test(id) values(3);

mysql> select * from test;

进入192.168.2.152

~]# mysql -uroot -proot

mysql> use cluster_test;#成功则说明数据库已经同步过来了

mysql> select * from test;

+------+

| id |

+------+

| 1 |

| 3 |

| 2 |

+------+

3 rows in set (0.00 sec)

从上述结果可以看到,数据一致说明集群搭建成功

 

注意事项:

1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。

2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。

3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。

七、管理和维护命令

关闭mysql集群:/usr/local/mysql/bin/ndb_mgm -e shutdown

重启mysql集群:/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

重启数据节点:/usr/local/mysql/bin/ndbd

启动SQL节点:/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 systemctl start mysqld.service|service mysqld restart

查看mysql状态:/usr/local/mysql/bin/ndb_mgm -e show

启动顺序:

管理节点 -> 数据节点 -> SQL节点

关闭顺序:

SQL节点 -> 数据节点 -> 管理节点

 

 

参考

https://blog.csdn.net/u012974916/article/details/53318000

https://cloud.tencent.com/developer/article/1005764

 

 

转载于:https://my.oschina.net/u/920769/blog/1926649

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值