1,检查系统是否安装MySQL,已安装则需要卸载干净
查看 systemctl status mysqld.service
2,关闭防火墙
查看 systemctl stop firewalld.service ;
关闭 systemctl disable firewalld.service;systemctl disable firewalld.service
3,安装依赖包
yum -y install lsof net-tools perl socat openssl openssl-devel boost-devel
4,官网下载安装包
https://galeracluster.com/downloads/
http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
http://releases.galeracluster.com/galera-3/centos/7/x86_64/
5,按顺序安装
rpm -ivh mysql-wsrep-common-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-libs-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-client-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-libs-compat-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-server-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-devel-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh galera-3-25.3.29-1.el7.x86_64.rpm
6,启动 mysql,并设置开机启动
- systemctl start mysqld
- systemctl enable mysqld
7,设置 root 密码,创建用于同步的用户。
- 查看安装默认密码:less /var/log/mysqld.log | grep password
-
mysql -u root -p
-
输入默认的密码
-
set global validate_password_policy=0;
-
set global validate_password_length=0;
-
alter user 'root'@'localhost' identified by 'password';
-
set password=password('password');
-
grant all on *.* to 'username'@'x.x.x.%' identified by 'password1';
-
flush privileges;
8,配置galera集群
vi /etc/my.cnf 在最后加入下边内容:
server_id=1
binlog_format=row
default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://'
wsrep_node_name='node1'
wsrep_node_address='192.168.1.1'
wsrep_sst_auth=username:password1
wsrep_sst_method=rsync
validate_password=off
说明:
server_id 要集群内唯一,比如 node1的为1,node2的为2...
wsrep_cluster_name 集群名字,可以自定义,但是同一集群要保持一致
wsrep_cluster_address 第一个节点的值为 'gcomm://' ,第一个节点起来后,其他节点可以配置为集群出自身外所有节点ip地址 如:'gcomm://192.168.1.1,192.168.1.2'
wsrep_node_name 节点主机名
wsrep_node_address 节点ip
wsrep_sst_auth 第7步创建的用于同步的用户和密码
9, 启动第一个节点
- systemctl restart mysqld
- systemctl status mysqld
10,启动其他(第二第三个)节点
systemctl restart mysqld
11,查看状态
- 登录 mysql 检查集群状态:show status like 'wsrep%';
12,集群测试
任意登录一个节点的 mysql ,创建数据库,发现其他节点也同步成功。
create database test;
show databases;