第1章 mariadb galera cluster集群部署
1.1 统一主机环境
修改vim /etc/hostname文件,规范主机名,和IP地址
主机名 |
IP地址 |
Mysql01 |
10.0.102.176 |
Mysql02 |
10.0.102.217 |
Mysql03 |
10.0.102.216 |
三台服务器环境都一致
[root@mysql01 ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@mysql03 ~]# uname -a
Linux mysql03 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
在/etc/hosts文件内添加解析
10.0.102.176 mysql01
10.0.102.217 mysql02
10.0.102.216 mysql03
1.2 mariadb galera cluster安装和配置
默认所有的主机都需要执行
1.2.1 安装MariaDB
Mariadb的版本
MariaDB 10.2.6
安装mariadb
yum -y install MariaDB-Galera-server MariaDB-client galera
启动MariaDB
service mysql start
执行MariaDB初始化脚本
mysql_secure_installation
创建用于节点的账户
MariaDB [(none)]>grant all privileges on *.* to sst@'%' identified by "123";
flush privileges //刷新权限
配置MariaDB glare cluster集群,在10.0.102.176主机上操作。
1.创建wsrep.cnf文件
cp /usr/share/mysql/wsrep.cnf /etc/my.cnf.d/
vim /etc/my.cnf.d/wsrep.cnf
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
#集群中的其他节点地址:可以是IP和用户名
wsrep_cluster_address="gcomm://"
wsrep_sst_method=rsync
节点的数据库账户和密码
wsrep_sst_auth=sst:123
参数介绍
"gcomm://" 是特殊的地址,仅仅是Galera cluster初始化启动时候使用。
如果集群启动以后,我们关闭了第一个节点,那么再次启动的时候必须先修改
"gcomm://"为其他节点的集群地址,例如
wsrep_cluster_address="gcomm://10.0.102.217:4567"
2.修改/etc/my.cnf.d/server.cnf
vim /etc/my.cnf.d/server.cnf
[galera]
wsrep_on=ON
MariaDB10.1之后wsrep默认值为OFF,即需设置为ON(mariadb10.1之前默认值为on),否则节点中的任何事务都不会复制到群集中的其他节点。
3.确认mysql的3306端口和wsrep的4567端口处于监听状态
netstat -antlp|grep -e 4567 -e 3306
在10.0.102.217的主机上重复步骤1 2 3,只修改步骤2中
wsrep_cluster_address="gcomm:// 10.0.102.217:4567"
在10.0.102.216重复步骤1 2 3只修改步骤2中
wsrep_cluster_address="gcomm://10.0.102.176:4567,10.0.102.217:4567"
新节点只需要连接到其中一个现有成员。它将自动检索群集映射并重新连接到其余节点,当然最好列出群集的所有节点,以便任何节点都可以加入连接到任何其他节点的群集,即使一个或多个节点已关闭。
1.3 启动 MariaDB Galera Cluster 服务
[root@mysql01 ~]# mysqld --wsrep-new-cluster --user=root &
出现 ready for connections ,证明我们启动成功。
150701 19:54:17 [Note] WSREP: wsrep_load(): loading provider library 'none'
150701 19:54:17 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.40-MariaDB-wsrep' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server, wsrep_25.11.r4026
继续启动其他节点:
service start mysql
警告?:--wsrep-new-cluster 这个参数只能在初始化集群使用,且只能在一个节点使用。
1.3.1 验证服务
[root@mysql01 backup]# netstat -antlp|grep -e 3306 -e 4567
tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 31968/mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 31968/mysqld
tcp 0 0 10.0.102.176:4567 10.0.102.217:8008 ESTABLISHED 31968/mysqld
tcp 0 0 10.0.102.176:4567 10.0.102.216:5224 ESTABLISHED 31968/mysqld
登录mysql控制台查看服务
MariaDB [(none)]> show status like 'wsrep%';
wsrep_cluster_size | 3
wsrep_incoming_addresses | 10.0.102.216:3306,10.0.102.217:3306,10.0.102.176:3306
wsrep_ready | ON
至此,我们的 MariaDB Galera Cluster 已经成功部署。