加载中…
个人资料
谢先斌
谢先斌
  • 博客等级:
  • 博客积分:0
  • 博客访问:390,981
  • 关注人气:201
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

mariadb5.5.36_galera_haproxy集群配置

(2015-04-16 19:41:29)
标签:

mariadb5.5.36_galera

mariadb10.0.16_galer

openstack

分类: SQL

环境条件:

db1: 192.168.4.160(以下简称160)
db2: 192.168.4.161(以下简称161)
haproxy: 192.168.4.165(以下简称165)

1. 部署软件版本
mariadb-galera-common-5.5.36-9.el6.x86_64.rpm
mariadb-galera-server-5.5.36-9.el6.x86_64.rpm
galera-25.3.5-2.el6.x86_64.rpm
haproxy-1.5.2-2.el6.x86_64.rpm
rsync-3.0.6-12.el6.x86_64.rpm

2. 环境准备
1)修改/etc/selinux/config中的SELINUX=enforcing,为SELINUX=permissive,重启机器
2)

3. 软件安装
3.1 160和161的共同部分
1)分别在160和161上安装mariadb、galera、rsync
yum install MariaDB-Galera-server MariaDB-client rsync galera

2)分别在160和161的mariadb中设置账户
启动mysqld: service mysqld start
运行:/usr/bin/mysql_secure_installation ,修改mariadb root密码,其他的项选y
运行:mysql -u root -p 进入mysql控制台,执行下面语句,
// 为galera设置账户:
mysql> DELETE FROM mysql.user WHERE user='';
mysql> GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'dbpass';
mysql> GRANT USAGE ON *.* to sst_user@'%' IDENTIFIED BY 'dbpass';
mysql> GRANT ALL PRIVILEGES on *.* to sst_user@'%';
mysql> FLUSH PRIVILEGES;
// 为haproxy设置账户
mysql> USE mysql;
mysql> INSERT INTO mysql.`user` (user.`Host`,user.`User`) VALUES ('%','haproxy_check_user');
mysql> FLUSH PRIVILEGES;
mysql> quit
说明:1 sst_user为galera同步数据是使用的账户,下面会在galera.cnf配置中使用到;
3)设置防火墙规则,对3306和4567端口进行
iptables -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 4567 -j ACCEPT
4)在/etc/my.cnf中添加:
!includedir /etc/my.cnf.d/
3.2 分别设置galera

1)修改160中的/etc/my.cnf.d/galera.cnf文件
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://"
wsrep_cluster_name='galera_cluster'
wsrep_node_name='db1'
wsrep_sst_method=rsync
wsrep_sst_auth=sst_user:dbpass

说明:1 wsrep_cluster_address但是集群中第一个节点启动时填空ip,以后节点中配置前一个节点的IP地址;
2 wsrep_sst_auth中sst_user:root为3.1中配置的mysql账户和密码
2)修改160中的/etc/my.cnf.d/galera.cnf文件
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.4.161"
wsrep_cluster_name='galera_cluster'
wsrep_node_name='db2'
wsrep_sst_method=rsync
wsrep_sst_auth=sst_user:dbpass
说明:与1)不同有wsrep_cluster_address和wsrep_node_name,其他都一样。

4. 启动mariadb集群

启动集群第一个节点(160):service mysqld start --wsrep-new-cluster
启动集群第二个节点(161):service mysqld start

5. 检测集群是否启动成功:
登录任意节点的MariaDB
mysql -u root -p 
mysql> show status like 'wsrep%';
看到下面参数时,说明集群配置成功。
| wsrep_incoming_addresses     | 192.168.4.160:3306,192.168.4.161:3306 |
| wsrep_cluster_conf_id        | 2                                     |
| wsrep_cluster_size           | 2                                     |
*****************clustercheck??

6. 在165上安装haproxy
1)安装haproxy-1.5.2-2.el6.x86_64.rpm
2)配置/etc/haproxy/haproxy.cnf
屏蔽以下两项:
# option httplog
# option forwardfor       except 127.0.0.0/8

添加:
listen mariadb
    mode tcp
    # bind *:3306
    bind 192.168.4.165:3306
    option httpchk
    option tcpka
    balance roundrobin
    option mysql-check user haproxy_check_user
    server db1 192.168.4.160:3306 weight 1 check inter 2000 rise 2 fall 5
    server db2 192.168.4.161:3306 weight 1 check inter 2000 rise 2 fall 5

3)打开3306端口,启动haproxy:
service haproxy start
7. 2节点mariadb glare 配置:
#/etc/my.cnf.d/galera.cnf
# Provider specific configuration options
wsrep_provider_options="pc.ignore_quorum=TRUE"
wsrep_provider_options="pc.ignore_sb=TRUE"
参考链接:
1. http://www.360doc.com/content/13/0817/15/834950_307820923.shtml
2. http://behindtheracks.com/2014/04/mysql-high-availability-with-galera-and-haproxy/
3. http://nirbhay.in/2014/08/selinux-for-galera-cluster/
4. http://blog.csdn.net/mr_mablevi/article/details/5881491

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有