糖豆豆 bio photo

糖豆豆

专注于虚拟化, 分布式存储, IaaS

Email

Overview

0. 前言

MariaDB是MySQL的一个分支,选择MariaDB的一个最初的动机是:

  • 简单的集群配置
  • 能较好的兼容MySQL

1. 安装环境

配置Galera集群建议至少用3个节点(如果只有两个节点,需要添加仲裁节点,本文没有相关说明)。

操作系统 IP 主机名 集群名称
CentOS 6.6 192.168.3.100 dbserver0 vmmscluster
CentOS 6.6 192.168.3.101 dbserver1 vmmscluster
CentOS 6.6 192.168.3.102 dbserver2 vmmscluster

2. 软件安装与配置

本章节所有操作在所有节点上无差异执行。

2.0 YUM源配置

  • 官方源
$ sudo cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
  • 本地源

    为了安装方便,我们也可以从官方把RPM下载到本地,并制作本地YUM源

$ sudo cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name=MariaDB
baseurl=<本地源路径>
enabled=1
gpgcheck=0

2.1 安装服务器

  • 安装之前

    在安装MariaDB软件之前,必须卸载所有已安装的MySQL的相关软件包,以及其它不兼容版本的MariaDB软件包。

$ sudo yum erase *mysql* MariaDB* galera
  • 安装服务器软件
$ sudo yum install MariaDB-Galera-server MariaDB-client galera

2.2 配置Galera集群

2.2.0 配置第一个节点

本节所有操作在dbserver0上进行,且仅在该节点上进行

  • 配置root用户密码
(安装完成后,数据库服务不会自动启动)
$ sudo /etc/init.d/mysql start
$ sudo mysql_secure_installation
- 设置root密码
- 删除匿名访问
- 删除测试数据库
- 刷新权限表
$ sudo /etc/init.d/mysql stop
  • 配置文件
$ sudo cat /etc/my.cnf.d/galera.cnf
[galera]

wsrep_provider=/usr/lib64/galera/libgalera_smm.so
binlog_format=ROW

wsrep_cluster_address=gcomm://dbserver0,dbserver1,dbserver2

wsrep_node_address='192.168.3.101'
wsrep_node_name='dbserver1'

wsrep_cluster_name='vmmscluster'

2.2.1 配置其它节点

将上一步中生成的 ‘/etc/my.cnf.d/galera.cnf’ 文件拷贝到其它节点的相应路径,并根据实际信息修改一下字段即可

  • wsrep_node_name: 节点主机名
  • wsrep_node_address: 节点IP地址

3 集群管理

3.0 启动集群

  • 启动第一个节点
$ sudo /etc/init.d/mysql bootstrap
  • 启动其它节点
$ sudo /etc/init.d/mysql start
  • 当集群中有任何一个节点在运行时,节点重启或者加入新节点都只需要直接启动即可
$ sudo /etc/init.d/mysql start
  • 查看集群状态
$ mysql -u root -p -e "show status like 'wsrep%'"

关注几个关键的参数:

参数 状态 功能
wsrep_connected on 链接已开启
wsrep_local_index 1 在集群中的索引值
wsrep_cluster_size 3 集群中节点的数量
wsrep_incoming_addresses   集群中节点的访问地址

4 参考文档