zoukankan      html  css  js  c++  java
  • MySQL 集群

    MySQL Galera介绍

    主要功能:

    • 同步复制
    • 真正的multi-master,即所有节点可以同时读写数据库
    • 自动的节点成员控制,失效节点自动被清除
    • 新节点加入数据自动复制
    • 真正的并行复制,行级
    • 用户可以直接连接集群,使用感受上与MySQL完全一致

    优势:

    • 因为是多主,所以不存在Slave lag(延迟)
    • 不存在丢失交易的情况
    • 同时具有读和写的扩展能力
    • 更小的客户端延迟
    • 节点间数据是同步的,Master/Slave模式是异步的,不同slave上的binlog可能是不同的

     

    环境

     IP 地址         主机名         描述
    10.0.0.10       node1       第一个启动
    10.0.0.11       node2
    10.0.0.12       node3

    版本信息

    [root@node1 ~]#  cat /etc/redhat-release
    CentOS Linux release 7.1.1503 (Core) 
    [root@node1 ~]# uname -a
    Linux node2 3.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/

    将以下配置替原有配置

    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 = 1              
    innodb_autoinc_lock_mode = 2
    lower_case_table_names = 1   # 修改这个配置必须重启
    log_bin_trust_function_creators = 1
    
    wsrep_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=8
    
    innodb_buffer_pool_size=10737418240
    innodb_log_file_size=134217728
    innodb_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 3306
    tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      5036/mysqld         
    tcp6       0      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
  • 相关阅读:
    Java第9次作业--接口及接口回调
    Java第8次作业--继承
    软件工程第三次作业——关于软件质量保障初探
    Java第7次作业--访问权限、对象使用
    Java第6次作业--static关键字、对象
    Java第5次作业--对象的创建与使用
    20194629 自动生成四则运算题第一版报告
    软件工程第一次作业
    今天开通博客啦!
    1170. Compare Strings by Frequency of the Smallest Character
  • 原文地址:https://www.cnblogs.com/wanglan/p/8039073.html
Copyright © 2011-2022 走看看