Galera

作者: 心疼你萌萌哒 | 来源:发表于2018-05-18 15:07 被阅读0次
#!/bin/bash
#1.添加IP地址解析
alter_hosts(){
cat >> /etc/hosts <<eof
192.168.44.128 galera1
192.168.44.129 galera2
192.168.44.130 galera3
192.168.44.131 galera4
eof
}
#2.关闭防火墙
stop_firewalld(){
systemctl stop firewalld
sed -ri '/^SELINUX=/c SELINUX=disabled' /etc/sysconfig/selinux
setenforce 0
systemctl status firewalld
}
#3.同步时间(galera1为ntp时间服务器其他机子安装nptdate,然后npdate ntp时间服务器)
set_ntp(){
yum -y install ntp
sed -ri '/^server 1.centos.pool.ntp.org iburst/c server 127.127.1.0' /etc/ntp.conf
sed -ri '/^server 2.centos.pool.ntp.org iburst/c fudge 127.127.1.0 stratum 10' /etc/ntp.conf
sed -ri '/^server 3.centos.pool.ntp.org iburst/d' /etc/ntp.conf
rm -rf /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
systemctl start ntpd
}
#下载galera
yum_rpm(){
cat > /etc/yum.repos.d/galera.repo <<eof
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
enabled=1
gpgcheck=0
eof
#以下为galera所依赖的软件包,各机子的可能存在缺失包什么的
yum clean all
yum makecache
rpm -e mariadb-libs --nodeps
yum -y install lsof
yum -y install boost-program-options-1.53.0-27.el7.x86_64
yum -y install nmap-ncat
yum -y install net-tools
yum -y install socat
yum install perl-JSON.noarch
yum install -y perl-Data-Dumper
yum -y install rsync
}
================================================
4.安装:
[root@wing yum.repos.d]# yum install mysql-wsrep-5.7.x86_64 galera  rsync -y
================================================
#修改密码
5.#password=grep 'A temporary password is generated for root@localhost:' /var/log/mysqld.log |cut -f 11 -d ' '
mysqladmin -uroot -p'  '  password 'Qingyang@123'
=======================================================================
每台机子添加一个互相访问的用户
6.#grant all on *.* to 'alice'@'%' identified by 'Qingyang@123';
======================================================================
7.配置Galera Replication:
==================================================
注意:所有服务需要按顺序重启
galera1配置:主配置文件my.cnf中[mysqld]标签内追加如下内容,黑体部分是和其他节点不同的地方
server-id=1
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://'
wsrep_node_name='galera1'
wsrep_node_address='192.168.44.128'
wsrep_sst_auth=alice:'Qingyang@123'
wsrep_sst_method=rsync

重启服务:
[root@galera1 ~]# systemctl  restart mysqld
==========================================================================
galera2配置:主配置文件my.cnf追加如下内容
server-id=2
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://galera1'
wsrep_node_name='galera2'
wsrep_node_address='192.168.44.129'
wsrep_sst_auth=alice:'Qingyang@123'
wsrep_sst_method=rsync


重启服务:
[root@galera2 ~]# systemctl  restart mysqld
=====================================================================
galera3配置:主配置文件my.cnf追加如下内容
server-id=3
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://galera1,galera2'
wsrep_node_name='galera3'
wsrep_node_address='192.168.44.130'
wsrep_sst_auth=alice:'Qingyang@123'
wsrep_sst_method=rsync

重启服务:
[root@galera3 ~]# systemctl  restart mysqld
==================================================================
galera4配置:主配置文件my.cnf追加如下内容
server-id=4
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://galera1,galera2,galera3'
wsrep_node_name='galera4'
wsrep_node_address='192.168.44.131'
wsrep_sst_auth=alice:'Qingyang@123'
wsrep_sst_method=rsync

重启服务:
[root@galera1 ~]# systemctl  restart mysqld
=================================================================
[root@localhost mysql]# ss -auntpl | grep -E '3306|4567'
tcp    LISTEN     0      128       *:4567                  *:*                   users:(("mysqld",pid=2393,fd=12))
tcp    LISTEN     0      80       :::3306                 :::*                   users:(("mysqld",pid=2393,fd=42))
=================================================================
mysql> show status like 'wsrep%';
+------------------------------+---------------------------------------------------------------------------------+
| Variable_name                | Value                                                                           |
+------------------------------+---------------------------------------------------------------------------------+
| wsrep_local_state            | 4                                                                               |
| wsrep_local_state_comment    | Synced                                                                          |
| wsrep_cert_index_size        | 4                                                                               |
| wsrep_causal_reads           | 0                                                                               |
| wsrep_cert_interval          | 0.000000                                                                        |
| wsrep_incoming_addresses     | 192.168.44.128:3306,192.168.44.129:3306,192.168.44.130:3306,192.168.44.131:3306 |
| wsrep_evs_delayed            |                                                                                 |
====================================================================
阶段测试:
在任何一台机器上写数据,在其他机器上全部会同步

相关文章

网友评论

      本文标题:Galera

      本文链接:https://www.haomeiwen.com/subject/dgugdftx.html