记录下MariaDB,Galera多主集群的安装与配置
环境配置
192.168.0.184 |
centos-mysql |
192.168.0.186 |
centos-master |
192.168.0.187 |
centos-minion1 |
三台均用阿里云镜像站,配置一个Mariadb 镜像如下
1
2
3
4
5
6
7
8
9
10
|
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
|
升级所有包
1
|
yum upgrade -y #不改变软件设置和系统设置,系统版本升级,内核不改变
|
安裝Mariadb
1
|
yum install -y MariaDB MariaDB-server MariaDB-shared MariaDBb-common galera rsync
|
启动服务 修改密码
1
2
|
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# /usr/bin/mysqladmin -u root password 'root'
|
关闭防火墙
1
2
|
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
|
配置域名解析
1
2
3
4
|
vim /etc/hosts
192.168.0.184 centos-mysql
192.168.0.186 centos-master
192.168.0.187 centos-minion1
|
加大文件描述符
1
2
3
4
5
6
7
8
9
10
11
12
|
vi /etc/security/limits.conf
soft nofile 65536
hard nofile 65536
vi /etc/sysctl.conf
fs.file-max=655350
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_tw_recycle = 1
sysctl -p
|
安装percona-xtrabackup
https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.6/binary/tarball/percona-xtrabackup-2.4.6-Linux-x86_64.tar.gz
1
2
3
|
tar -xvf percona-xtrabackup-2.4.6-Linux-x86_64.tar.gz
[root@centos-mysql opt]# cd percona-xtrabackup-2.4.6-Linux-x86_64/bin/
[root@centos-mysql bin]# cp -a * /usr/bin/
|
修改server.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#节点ip[root@centos-master ~]# cat /etc/my.cnf.d/server.cnf
[server]
[mysqld]
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so #galera的库文件的地址
wsrep_cluster_address="gcomm://192.168.0.184,192.168.0.186,192.168.0.187"#各节点的ip
wsrep_node_name=centos-master #节点主机名
wsrep_node_address=192.168.0.186#节点ip
binlog_format=row #二进制日志设置为行模式 row (安全性最高,性能最低)
default_storage_engine=InnoDB #使用的默认引擎 innoDB 支持事务
innodb_autoinc_lock_mode=2 #2为性能最好
[embedded]
[mariadb]
[mariadb-10.1]
|
启动服务
1
2
3
|
sudo -u mysql /usr/sbin/mysqld --wsrep-new-cluster &> /tmp/wsrep_new_cluster.log &
tail -f /tmp/wsrep_new_cluster.log # 如果出现 ready for connections, 表示启动成功
#只需要任意一台机子启动 这条命令
|
其余使用这个
1
|
systemctl start mariadb
|
1
2
3
4
5
|
在任意数据库服务器执行以下命令验证 MariaDB Galera Cluster
$ mysql -uroot -p -e "show status like 'wsrep_cluster_size'#这里应该显示集群里有3个节点
$ mysql -uroot -p -e "show status like 'wsrep_connected' #这里应该显示ON
$ mysql -uroot -p -e "show status like 'wsrep_incoming_addresses' #这里应该显示3个ip
$ mysql -uroot -p -e "show status like 'wsrep_local_state_comment'#这里显示节点的同步状态
|
注意事项
- 如果三台服务都关闭了,需要更改配置文件才能起来
- 会以master关闭前数据为主 再启动的master
1
2
3
4
5
6
7
8
9
|
[root@centos-master ~]# more /var/lib/mysql/grastate.dat
GALERA saved state
version: 2.1
uuid: 9b049efe-682f-11ea-bc1f-96ff892d587d
seqno: -1
safe_to_bootstrap: 0
#把safe_to_bootstrap改为1 就可以启动了
|