mysql 集群状态_MySQL 集群

MySQL Galera介绍

主要功能:

同步复制

真正的multi-master,即所有节点可以同时读写数据库

自动的节点成员控制,失效节点自动被清除

新节点加入数据自动复制

真正的并行复制,行级

用户可以直接连接集群,使用感受上与MySQL完全一致

优势:

因为是多主,所以不存在Slave lag(延迟)

不存在丢失交易的情况

同时具有读和写的扩展能力

更小的客户端延迟

节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的

环境

IP 地址 主机名 描述10.0.0.10node1 第一个启动10.0.0.11node210.0.0.12 node3

版本信息

[root@node1 ~]# cat /etc/redhat-release

CentOS Linux release7.1.1503(Core)

[root@node1~]# uname -a

Linux node23.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

修改主机名

[root@localhost ~]# hostnamectl set-hostname node1

关闭防火墙和SElinux

[root@node1 ~]# systemctl stop firewalld.service

[root@node1~]# setenforce 0

清除原有Mysql

[root@node1 ~]# yum erase mysql mysql-devel mysql-libs -y

[root@node1~]# rpm -qa |grep mysql

组件下载地址

http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64/

http://releases.galeracluster.com/galera-3/centos/7/x86_64/

安装组件(yum 安装,依次安装了,如果失败,等其他安装包安装好以后,重新安装一遍)

[root@node1 ~]# yum install -y http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64/mysql-wsrep-client-5.6-5.6.38-25.21.el7.x86_64.rpm

[root@node1 ~]# yum install -y http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64/mysql-wsrep-devel-5.6-5.6.38-25.21.el7.x86_64.rpm

[root@node1 ~]# yum install -y http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64/mysql-wsrep-shared-5.6-5.6.38-25.21.el7.x86_64.rpm

[root@node1 ~]# yum install -y http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64/mysql-wsrep-test-5.6-5.6.38-25.21.el7.x86_64.rpm

[root@node1 ~]# yum install -y http://releases.galeracluster.com/galera-3/centos/7/x86_64/galera-3-25.3.22-2.el7.x86_64.rpm

[root@node1 ~]# yum install -y http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64/mysql-wsrep-server-5.6-5.6.38-25.21.el7.x86_64.rpm

启动 mysql 并添加用户名、密码和对应数据库的用户名、密码权限

[root@node1 ~]# service mysql start --skip-grant-tables

[root@node1~]# mysql

mysql>use mysql;

mysql> update user set password=PASSWORD("123456") where USER="root";mysql> quit

重启mysql服务,使用创建的用户名和密码登录.再次进入的时候回提示你设置密码

[root@node1 ~]# service mysql restart

[root@node1~]# mysql -uroot -p

mysql> SET PASSWORD=PASSWORD("123456");

创建同步账号并授权

mysql> grant all on *.* to 'wsrep'@'%' identified by 'nx111111';

mysql>quit

设置Mysql为开机启动

[root@node1 ~]# chkconfig mysql on

去掉Postfix,这个可能跟MySQL配置有冲突

[root@node1 ~]# yum remove postfix -y

关闭Mysql

[root@node1 ~]# service mysql stop

配置文件

[root@node1 ~]# vim /etc/my.cnf!includedir /etc/my.cnf.d/ # 添加此行

拷贝swrep.conf 文件到/etc/my.cnf.d/下

[root@node1 ~]# cp -r /usr/share/doc/mysql-wsrep-server-5.6-5.6.38/wsrep.cnf /etc/my.cnf.d/

将以下配置替原有配置

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

vim /etc/my.cnf.d/wsrep.cnf

[mysqld]

server_id= 10 #每个节点都不一样,分别是 10、11、12

default_storage_engine =InnoDB

datadir=/var/lib/mysql/binlog_format=ROW

log-bin = mysql-bin

log-slave-updates = 1innodb_autoinc_lock_mode= 2lower_case_table_names= 1 #修改这个配置必须重启

log_bin_trust_function_creators = 1wsrep_provider= /usr/lib64/galera-3/libgalera_smm.so

wsrep_sst_auth=wsrep:nx111111

wsrep_sst_method=xtrabackup

wsrep_cluster_name= 'nx_wsrep' #集群名,一定要一致。

wsrep_node_name = node1 #本节点主机名

wsrep_cluster_address = gcomm://10.0.0.11,10.0.0.12 #其它节点 IP

wsrep_node_address = 10.0.0.10 #本节点 IP

wsrep_sst_donor=node2,node3, #其它节点的名称

wsrep_sst_method =rsync

wsrep_slave_threads=8innodb_buffer_pool_size=10737418240innodb_log_file_size=134217728innodb_flush_log_at_trx_commit=2

#innodb_buffer_pool_dump_at_shutdown=1#innodb_buffer_pool_load_at_startup=1#innodb_log_file_buffer_size=16777216

skip-name-resolve

[client]

user=wsrep

password= nx111111

View Code

启动 mysql-wsrep

集群中的第一个节点,以空地址启动

[root@node1 ~]# mysqld_safe --wsrep_cluster_address=gcomm://>/dev/null &

其它节点,启动方式

[root@node1 ~]# mysqld_safe > /dev/null &

更新数据库

[root@node1 ~]# mysql_upgrade

增加数据库的安全性

[root@node1 ~]# mysql_secure_installation

查看集群状态

查看集群配置

mysql> show status like "wsrep%";

确认MySQL的3306端口和wsrep的4567端口处于监听状态

[root@node3 ~]# netstat -tulpn | grep -e 4567 -e 3306tcp0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 5036/mysqld

tcp60 0 :::3306 :::* LISTEN 5036/mysqld

集群功能是否开启

mysql> show status like 'wsrep_ready';+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| wsrep_ready | ON |

+---------------+-------+

1 row in set (0.00 sec)

集群ID号

mysql> SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid';+--------------------------+--------------------------------------+

| Variable_name | Value |

+--------------------------+--------------------------------------+

| wsrep_cluster_state_uuid | 176a8d84-e0ba-11e7-9e7b-d7b3a39130ff |

+--------------------------+--------------------------------------+

1 row in set (0.00 sec)

集群中的节点数量

mysql> SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size';+--------------------+-------+

| Variable_name | Value |

+--------------------+-------+

| wsrep_cluster_size | 3 |

+--------------------+-------+

1 row in set (0.00 sec)

集群(其他)节点地址

mysql> show variables like 'wsrep_cluster_address';+-----------------------+----------+

| Variable_name | Value |

+-----------------------+----------+

| wsrep_cluster_address | gcomm://|

+-----------------------+----------+

1 row in set (0.00 sec)

参考

http://blog.csdn.net/yangchuan_csdn91/article/details/52689981?locationNum=2


版权声明:本文为weixin_39607474原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。