您的位置:首页 > 数据库 > MariaDB

MariaDB集群配置

2016-06-24 20:55 651 查看
0.双节点集群,IP分别为:

HostA :172.18.48.3

HostB : 172.18.48.4

本地进行/etc/hosts解析。

1.添加源

deb http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main

deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main

apt-get update

2.安装mariadb和galera包

# apt-get install -y rsync galera mariadb-galera-server

3.修改配置文件

# emacs /etc/mysql/my.cnf

bind-address     = 0.0.0.0

skip-name-resolve

4.配置galera cluster

在每个节点新增/etc/mysql/conf.d/galera.cnf文件:

--------------------------------------------------------

[mysqld]

#mysql settings

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

query_cache_size=0

query_cache_type=0

bind-address=0.0.0.0

#galera settings

wsrep_provider=/usr/lib/galera/libgalera_smm.so

wsrep_cluster_name="my_wsrep_cluster"

wsrep_cluster_address="gcomm://172.18.48.3,172.18.48.4"

wsrep_sst_method=rsync

##集群节点IP,主主模式,相互镜像,可以添加多个IP地址

---------------------------------------------------------

4.galera01和galera02关闭mysql

HostA: service mysql stop

HostB: service mysql stop

5.启动集群,第一个启动的节点要加上集群初始化命令,相当于主节点

HostA: service mysql start --wsrep-new-cluster

HostB: service mysql start

6.检查集群规模

HostA: mysql -u root -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"' -p

+————–+

| cluster size |

+————–+

| 2 |

+————–+

7.在HostA上创建数据库,并授权允许远程访问

mysql>create database nova;

mysql>GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';

8.galera的弹性和容灾

添加新节点时候直接重启服务即可,galera节点必须有一个主节点,即执行如下语句的节点:

service mysql start --wsrep-new-cluster

9.galera的使用注意:

galera集群内部节点使用双主模式,每个节点都能对外提供服务,数据在故障节点恢复后能够自动同步数据,无需人工干预,

同时为了保证对外服务高可用,可以使用heartbeat或者haproxy+keepalive的方式来实现HA.

10.出现错误时解决

# 如果我们在主主中关闭某台服务器时出现以下错误

[FAIL] Stopping MariaDB database server: mysqld failed!

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

此原因是因为在/etc/mysql/debian.cnf中配置有这个用户debian-sys-maint

我们只需要在主服器上复制/etc/mysql/debian.cnf到其它服务器中,保持文件一致即可

# scp /etc/mysql/debian.cnf 172.18.48.4:/etc/mysql/

11、Maridb Crash时的数据恢复:

请参考:https://www.percona.com/blog/2014/09/01/galera-replication-how-to-recover-a-pxc-cluster/?utm_source=tuicool
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Maridb 集群