CentOS 6 MariaDB Cluster

可将cluster 同步方式设置成为

    wsrep_sst_method=xtrabackup  #所有节点都要更改

xtrabackup 安装 FROM http://allcmd.com/post/id/198

INSTALL MARIADB

192.168.80.111      node1 db1

192.168.80.110      node2 db2

192.168.80.101      node3 db3

all node

因为官方源连接不稳定,最好使用迅雷下载下来,放到每个node /var/cache/yum/下的目录里
使用aliyun.repo http://mirrors.aliyun.com/help/centos
epel.repo http://mirrors.aliyun.com/help/epel
cat << EOF >/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
EOF

yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/socat-1.7.2.3-1.el6.x86_64.rpm -y

yum install MariaDB-Galera-server MariaDB-client rsync galera -y

/etc/init.d/mysql start && chkconfig mysql on

/usr/bin/mysql_secure_installation  ##不设置密码

mkdir /mariadb_data  && mount /dev/mapper/VG_SYSTEM-lv_mysql_data /mariadb_data/

echo "/dev/mapper/VG_SYSTEM-lv_mysql_data    /mariadb_data        ext4    defaults   0 0" >>/etc/fstab

mysql -uroot -p

    DELETE FROM mysql.user WHERE user='';
    GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* to sst_user@'%' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    quit

/etc/init.d/mysql stop

all node

rm -rf /etc/my.cnf.d/*

cat >/etc/my.cnf.d/galera_common.cnf <<HERE
[mysqld]
datadir=/mariadb_data/data
character_set_server=utf8
wsrep-cluster-name = "szqs_d3_2_cluster"
wsrep-provider = /usr/lib64/galera/libgalera_smm.so
wsrep-provider-options = "gcache.size=256M;gcache.page_size=128M"
wsrep-sst-auth = "sst_user:password"
binlog-format = row
default-storage-engine = InnoDB
innodb-doublewrite = 1
innodb-autoinc-lock-mode = 2
innodb-flush-log-at-trx-commit = 2
innodb-locks-unsafe-for-binlog = 1
HERE

db1

cat >/etc/my.cnf.d/galera_db00.cnf <<HERE
[mysqld]
wsrep-node-name = "db1"
wsrep-sst-receive-address = 192.168.80.111
wsrep-node-incoming-address = 192.168.80.111
bind-address = 192.168.80.111
wsrep_sst_method = rsync

wsrep-cluster-address = gcomm://192.168.80.111,192.168.80.101,192.168.80.110
HERE

/etc/init.d/mysql start --wsrep-new-cluster

db2

cat >/etc/my.cnf.d/galera_db00.cnf <<HERE
[mysqld]
wsrep-node-name = "db2"
wsrep-sst-receive-address = 192.168.80.110
wsrep-node-incoming-address = 192.168.80.110
bind-address = 192.168.80.110
wsrep_sst_method = rsync
wsrep-cluster-address = gcomm://192.168.80.111,192.168.80.101,192.168.80.110
HERE

/etc/init.d/mysql start

db3

cat >/etc/my.cnf.d/galera_db00.cnf <<HERE
[mysqld]
wsrep-node-name = "db3"
wsrep-sst-receive-address = 192.168.80.101
wsrep-node-incoming-address = 192.168.80.101
bind-address = 192.168.80.101
wsrep_sst_method = rsync
wsrep-cluster-address = gcomm://192.168.80.111,192.168.80.101,192.168.80.110
HERE

/etc/init.d/mysql start

检测集群

show status like 'wsrep%';

配置NGINX转发

mkdir /home/nginx/tcp_conf.d
vim /home/nginx/nginx.conf
# 添加stream模块
stream {
include  /home/nginx/tcp_conf.d/*.conf;
}

vim /home/nginx/tcp_conf.d/tcp.conf
    upstream szqs_d3_1 { 
        hash $remote_addr consistent; 
        server 192.168.80.101:3306 weight=5 max_fails=3 fail_timeout=30s; 
        server 192.168.80.110:3306 weight=5 max_fails=3 fail_timeout=30s; 
        server 192.168.80.111:3306 weight=5 max_fails=3 fail_timeout=30s; 
    }

    server { 
        listen 3306; 
        proxy_connect_timeout 1s; 
        proxy_timeout 3s; 
        proxy_pass szqs_d3_1; 
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容