zoukankan      html  css  js  c++  java
  • Galera Cluster for Mysql集群环境搭建

    1、系统环境

             CentOS 7.5   虚拟机环境 

              NODE1:192.168.1.33

              NODE2:192.168.1.34

              NODE3:192.168.1.35

    2、linux 更换国内镜像

      首先备份/etc/yum.repos.d/CentOS-Base.repo

      执行命令:

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

    下载网易repos  通过ftp 上传至/etc/yum.repos.d/ 目录下

    下载地址:http://mirrors.163.com/.help/centos.html

    替换完成后执行:

    yum clean all
    yum makecache

    3、安装清华大学 elep repo

    执行命令:

    rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm

    4、创建mysql目录及mysql日志文件

    执行命令:

    vi /var/log/mysql.error

    日志文件赋权限

    chmod -R 777 /var/log/mysql.error

    创建mysql 数据目录

    mkdir -p /usr/local/mysql/data/

    赋权限

    chmod -R 777 /usr/local/mysql/

     

    5、卸载 mariadb

    查看系统是否已经安装了mariadb

    执行命令:

    rpm -qa | grep mariadb

    如果存在则执行:

    rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 (此处是我的系统)

    6、开启防火墙

    执行命令:

    firewall-cmd --zone=public --add-port=3306/tcp –permanent
    firewall-cmd --zone=public --add-port=4444/tcp –permanent
    firewall-cmd --zone=public --add-port=4567/tcp –permanent

    重启防火墙

    firewall-cmd --reload

    7、设置SELinux

    执行命令:

    vi /etc/selinux/config

    修改

    SELINUX=enforcing 为 permissive

    执行 reboot 重启电脑

    8、下载 Galear 组件

    由于下载慢 可以在此下载

    官方下载地址:https://galeracluster.com/downloads/

     选择CentOS

    选择 7

    选择x86_64

    点击下载galera-3-25.3.28-1.el7.x86_64.rpm

    下载:

    选择 CentOS

    进去后所有的下载所有的RPM

    9、安装Galear 依赖包

    执行命令:

    yum -y install gcc gcc-c++ openssl openssl-devel lsof socat perl boost-devel rsync jemalloc libaio libaio-devel net-tools

    10、安装Galear

    上传刚才下载的文件到linux 目录后依次执行:

    rpm -ivh mysql-wsrep-common-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh mysql-wsrep-libs-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh mysql-wsrep-client-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh mysql-wsrep-server-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh mysql-wsrep-libs-compat-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh mysql-wsrep-devel-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh mysql-wsrep-5.7-5.7.28-25.20.el7.x86_64.rpm
    rpm -ivh galera-3-25.3.28-1.el7.x86_64.rpm
    

    11、创建wsrep.cnf 文件

    编辑 /etc/my.cnf 注释掉所有,增加!includedir /etc/my.cnf.d/

    执行命令:

    vi  /etc/my.cnf.d/wsrep.cnf
    [mysqld]
    #设置跳过密码认证(自定义密码设置成功后,需要删除此项)
    skip-grant-tables
    lower_case_table_names=1
    # 设置3306端口
    port=3306
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=10000
    # 允许连接失败的次数。
    max_connect_errors=20
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    default_authentication_plugin=mysql_native_password
    #MySQL服务器的ID,必须是唯一的,集群各个节点也不同
    server_id=1
    # 防止日志时间和系统时间不一样
    log_timestamps=SYSTEM
    explicit_defaults_for_timestamp=true
    log_error=/var/log/mysql.error
    pid_file=/run/mysqld/mysqld.pid
    user=mysql
    socket=/usr/local/mysql/data/mysql.sock
    # galera集群的名字,必须是统一的
    wsrep_cluster_name='cs_cluster'
    # wsrep提供者,必须配置(可以通过find命令查找 该文件在那两个目录下)
    wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so
    #wsrep节点的ID,必须是唯一的,集群各个节点也不同
    wsrep_node_name = node1
    # 集群中的其他节点地址,可以使用主机名或IP (数据库初始化之前先不配置此项,但是初始化完成之后需要配置此项)
    #wsrep_cluster_address=gcomm://192.168.1.33:4567,192.168.1.34:4567,192.168.1.35:4567
    wsrep_cluster_address=gcomm://
    # 本机节点地址,可以使用主机名或IP
    wsrep_node_address='192.168.1.33'
    # 指定wsrep启动端口号,4567为默认值
    wsrep_provider_options ="gmcast.listen_addr=tcp://192.168.1.33:4567"
    # 一个逗号分割的节点串作为状态转移源,比如 wsrep_sst_donor=node1,node2,node3 如果node1可用,用node2,如果node2不可用,用node3,最后的逗号表明让提供商自己选择一个最优的。
    wsrep_sst_donor='node1,node2,node3'
    # 集群同步方式
    wsrep_sst_method=rsync
    # 集群同步的用户名密码
    wsrep_sst_auth=test:test
    slow_query_log=on
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    socket=/usr/local/mysql/data/mysql.sock
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8
    socket=/usr/local/mysql/data/mysql.sock
    [mysqldump]
    max_allowed_packet = 512M
    [mysqld_safe]
    malloc-lib=/usr/lib64/libjemalloc.so.1
    

    12、初始化mysql

     

    初始化mysql:

    mysqld --initialize –-console

    启动mysql:

    service mysqld start

    进入mysql 并设置密码

     mysql -u root -p 

    注意:

    如果遇到(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/data/mysql.sock' (2) )

    重启mysql 服务  systemctl restart mysqld.service 

    由于之前设置了 skip-grant-tables 因此直接按回车进入

    修改mysql 密码:

    update mysql.user set authentication_string=password('root') where user='root';
    flush privileges;

    键入:quit 退出

    删除skip-grant-tables

    重启mysql 服务

    执行:

    service mysqld start

    用之前修改的密码进入mysql

    mysql -u root –p
    输入上面修改的密码:root

    再次修改密码执行:

    alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
    flush privileges;

    设置mysql 可以远程登录

    use mysql;
    update user set user.Host='%' where user.User='root';
    flush privileges;

    设置mysql 开机启动

    systemctl enable mysqld.service
    chkconfig --levels 2345 mysqld on

    注意:正在将请求转发到“systemctl enable mysqld.service”

    13、注意事项

    按照上面的步骤安装其余两台机器或者通过虚拟机克隆,克隆出两台机器,需要注意的是一下三项参数必须按照不同机器来配置

    server_id=1

    wsrep_node_name = node1

    wsrep_provider_options ="gmcast.listen_addr=tcp://192.168.1.33:4567"

    14、启动集群

    其余两台机器安装好之后,启动集群环境

    • 编辑/etc/my.cnf.d/wsrep.cnf

            把wsrep_cluster_address=gcomm:// 改为其余两个节点的实际ip地址

            如我的配置:wsrep_cluster_address=gcomm://192.168.1.33:4567,192.168.1.34:4567,192.168.1.35:4567

            修改完成后停止mysql 服务

    systemctl stop mysqld.service

     

    • 启动集群环境,第一台启动的集群服务必须使用下面的命令:

       

    bash  /usr/bin/mysqld_bootstrap 
    • 其余节点启动

    使用:

    systemctl start mysqld.service

    注意:其余节点启动之前也需要把把wsrep_cluster_address=gcomm:// 改为其余两个节点的实际ip地址

    启动之后查看集群状态

  • 相关阅读:
    集合
    元组 与 字典
    列表
    练习题
    字符串的类型补充
    3月19号练习题及作业
    变量,用户交互的补充内容,以及数据内容
    Python 入门
    计算机基础
    决策树的概念及其训练
  • 原文地址:https://www.cnblogs.com/xinting/p/12536116.html
Copyright © 2011-2022 走看看