记一次虚拟机搭建mysql cluster集群
Mysql Cluster有三种节点,management,data node及SQL node
一般来说management与其他两种节点不再同一台服务器上
mysql cluster的engine只能是ndb,与我们一般使用的innodb是有一些区别的:详情链接
1.准备三台服务器
192.168.177.129 管理服务器
192.168.177.130 data node,sql node
192.168.177.131 data node,sql node
2.下载
下载mysql-cluster-community-8.0.29-1.el8.x86_64.rpm-bundle.tar包复制到三台服务器上
3.关闭防火墙
4.解压
tar -xvf mysql-cluster-community-8.0.29-1.el8.x86_64.rpm-bundle.tar
5.安装
管理服务器只需要安装management-server,自己看依赖安装
rpm -Uvh mysql-cluster-community-management-server-8.0.29-1.el8.x86_64.rpm
6.配置及启动
1.管理节点(192.168.177.129)
先配置管理服务器,新建配置文件
mkdir /var/lib/mysql-cluster cd /var/lib/mysql-cluster vim config.ini
内容
[ndbd default] NoOfReplicas=2 #management [NDB_MGMD] nodeid=1 HostName=192.168.177.129 DataDir=/var/lib/mysql-cluster
#data node [NDBD] nodeid=2 HostName=192.168.177.130 DataDir=/usr/local/mysql/data [NDBD] nodeid=3 HostName=192.168.177.131 DataDir=/usr/local/mysql/data
#sql node [MYSQLD] nodeid=4 HostName=192.168.177.130 [MYSQLD] nodeid=5 HostName=192.168.177.131
启动管理节点
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
注:命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。
如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。(这个我没试过)
2.数据以及SQL节点
编辑/etc/my.cnf文件[mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysql.sock user=mysql ndbcluster default-storage-engine=ndbcluster #bind-address=0.0.0.0 #skip-grant-tables [mysql_cluster] ndb-connectstring=192.168.177.129
注:中间碰到一个问题,之前user=root,mysql服务怎么都跑不起来,始终卡在新建test失败,改成user=mysql之后没有该问题
#不一定需要这个,如果跑不起来参考一下,不一定有用
chown -R mysql:mysql /usr/local/mysql/data
启动数据节点
ndbd --initial
注:第一次启动需要加参数:–initial,以后就不用加了,直接运行:ndbd
数据节点和SQL节点在同一服务器时可不用在配置my.cnf
启动SQL节点
service mysqld start
7.完成
在管理节点输入可查看
[root@localhost ~]# 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 @192.168.177.130 (mysql-8.0.29 ndb-8.0.29, Nodegroup: 0, *) id=3 (not connected, accepting connect from 192.168.177.131) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.177.132 (mysql-8.0.29 ndb-8.0.29) [mysqld(API)] 4 node(s) id=4 @192.168.177.130 (mysql-8.0.29 ndb-8.0.29) id=5 @192.168.177.131 (mysql-8.0.29 ndb-8.0.29) id=6 (not connected, accepting connect from any host) id=7 (not connected, accepting connect from any host)
注:开启顺序是管理节点,数据节点,SQL节点,关闭顺序则是相反
8.一些思考
管理节点只有单个,若是挂掉影响整个集群,集群网络要求比较高