Galera Cluster6.5 集群搭建
Posted lfh9527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Galera Cluster6.5 集群搭建相关的知识,希望对你有一定的参考价值。
本文非原创,在踩了无数坑后整理的可以正常搭建集群的方法。
本人在实验Galera Cluster6.7时,mysql-wsrep-test-5.7-5.7.23-25.15.el7.x86_64.rpm无法成功安装,提示需要mysql-wsrep-server-5.7-5.7.23-25.15.el7.x86_64.rpm的依赖,实际上mysql-wsrep-server是成功安装了的,不知道你们有没有遇见这种情况。
安装环境:
centOs7
Galera Cluster5.6(MySql5.6)
下载galeracluster
下载地址http://galeracluster.com/downloads/
使用 (yum install -y 包名)命令进行安装。
安装顺序:
- mysql-wsrep-client-5.6-5.6.41-25.23.el7.x86_64.rpm
- mysql-wsrep-devel-5.6-5.6.41-25.23.el7.x86_64.rpm
- mysql-wsrep-server-5.6-5.6.41-25.23.el7.x86_64.rpm
- mysql-wsrep-shared-5.6-5.6.41-25.23.el7.x86_64.rpm
- mysql-wsrep-5.6-5.6.41-25.23.el7.x86_64.rpm
- mysql-wsrep-test-5.6-5.6.41-25.23.el7.x86_64.rpm
- galera-3-25.3.24-2.el7.x86_64.rpm
安装完成后mysql 首次启动
1) 使用命令:service mysql start --skip-grant-tables 开启mysql服务,也就是使用safe模式启动,登录的时候不用输入密码
2) 使用命令: mysql 登录
3) 修改root用户密码
mysql> use mysql;
mysql> update user set password="密码" where USER="root"
mysql> quit
4) 重新设置密码并开放远程登录授权
使用命令: service mysql restart
重启mysql服务,使用创建的用户名和密码登录.
再次进入的时候修改密码: SET PASSWORD=PASSWORD("密码")
给对应需要访问MySQL的用户名和密码进行授权,如果没有授权,是无法远程连接MySQL的
授权无端口限制的用户登录mysql数据库(生产上开放端口):
GRANT ALL PRIVILEGES ON *.* TO ‘用户名‘@‘%‘ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION;
5) 去掉Postfix,这个可能跟MySQL配置有冲突:
yum remove postfix -y
6) 关闭防火墙(生产上可开放端口):
setenforce 0 && systemctl stop firewalld
修改配置文件:
1) 拷贝wsrep.cnf 文件(/usr/share/doc/mysql-wsrep-server) 到 /etc/my.cnf.d/下
cp /usr/share/doc/mysql-wsrep-server-5.6-5.6.41/wsrep.cnf /etc/my.cnf.d/
2) 修改my.cnf
vim /etc/my.cnf,注释掉其他的,增加:!includedir /etc/my.cnf.d/
3) 修改wsrep.cnf
vi /etc/my.cnf.d/wsrep.cnf
#MySQL服务器的ID,必须是唯一的 server-id=101 #galera集群的名字,必须是统一的 wsrep_cluster_name=my_galera_cluster #wsrep提供者,必须配置 wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so (.so文件的路径在哪,就配置成哪) #wsrep节点的ID,必须是唯一的 wsrep_node_name = node1 #集群中的节点地址,可以使用主机名或IP wsrep_cluster_address=gcomm:// 192.168.79.139:4567, 192.168.79.141:4567, 192.168.79.142:4567 #指定wsrep启动端口号 wsrep_provider_options=‘gmcast.listen_addr=tcp://192.168.79.139:4567‘ #本机节点地址,可以使用主机名或IP wsrep_node_address=‘192.168.79.139‘ wsrep_node_incoming_address=‘192.168.79.139‘ #一个逗号分割的节点串作为状态转移源,比如wsrep_sst_donor=node5,node3,如果node5可用,用node5,不可用node3,如果node3不可用,最后的逗号表明让提供商自己选择一个最优的。 wsrep_sst_donor=‘node1,node2,node3,‘ #线程数量。参考设置:1.CPU内核数*2以上;2.其它写节点连接总数的1/4. wsrep_slave_threads=16 #操作数据库的用户名密码(最好能和mysql数据库的用户名密码一致) wsrep_sst_auth=root:123456 其余配置暂不用修改,有需要配置的,最好了解清楚以后修改 |
启动集群:
1) 集群第一个节点启动
service mysql start --wsrep-new-cluster
查看集群状态:show status like ‘wsrep%‘;
可以查看一下4567端口是否开放,其他节点接入的时候需要。
2) 其他节点启动
service mysql start --wsrep-cluster-address=‘gcomm://192.168.79.139:4567‘;
注意gcomm://后的地址是前一个启动成功的节点地址。
配置方式遵循,1节点指向0节点地址,2节点指向1节点地址,以此类推.
集群测试:
1) 在节点139上创建database:create database clustertest;
在节点141和节点142上查看创建状态
2) 在节点139的数据库clustertest上创建表:create table myCluster;
在节点141和节点142上查看创建状态
3) 在节点139的表中插入数据:
INSERT INTO myCluster VALUES(‘1‘,‘1.0‘,‘node139‘,‘node139‘);
在节点141和节点142上查看
4) 使用java代码插入10W条数据
在插入过程中停掉一个节点,一段时间后再启动,数据自动同步,无丢失数据。
整个插入过程数据实时同步,无延迟。
以上是关于Galera Cluster6.5 集群搭建的主要内容,如果未能解决你的问题,请参考以下文章
Linux 搭建 MariaDB Galera Cluster 高可用集群
Galera Cluster5.7 (CentOs7) 集群搭建
超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数