zoukankan      html  css  js  c++  java
  • 基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群

    本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群

    本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群

    本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群

    这篇文章主要内容是MariaDB Galera Cluster集群搭建过程,至于这个集群的工作原理、优缺点比较,不在这里讨论。

    环境信息:

    • CentOS Linux release 7.9.2009 (Core);
    • mariadb-10.6.4;

    集群搭建,至少3台机器,信息如下:

    IP地址 节点名称
    10.200.67.27 MariaDB-Node1
    10.200.67.29 MariaDB-Node2
    10.200.67.26 MariaDB-Node3

    需要安装的组件:MariaDB-serverMariaDB-client。从MariaDB版本10.1开始,MariaDB ServerMariaDB Galera Server安装包已经合并了。安装MariaDB-server会自动安装Galera及其依赖。

    具体步骤如下:

    一、仓库配置

    执行下面命令配置mariadb仓库:

    [xiaofang@sd-vm-0004432 ~]$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
    [info] Checking for script prerequisites.
    [info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo
    [info] Adding trusted package signing keys...
    /etc/pki/rpm-gpg /home/xiaofang
    /home/xiaofang
    [info] Successfully added trusted package signing keys
    [info] Cleaning package cache...
    Loaded plugins: fastestmirror
    Cleaning repos: base extras mariadb mariadb-main mariadb-maxscale mariadb-tools updates
    Cleaning up list of fastest mirrors
    

    然后,将上述步骤,在其余两台机器上照着执行一遍。

    二、下载安装包并安装

    安装包的下载地址:https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/

    2.1 依赖文件下载

    执行下载:

    wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-common-10.6.4-1.el7.centos.x86_64.rpm
    
    wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-compat-10.6.4-1.el7.centos.x86_64.rpm
    

    执行安装:

    [xiaofang@sd-vm-0004433 mariadb]$ ll
    total 2292
    -rw-rw-r-- 1 xiaofang xiaofang   83116 Aug  5 02:57 MariaDB-common-10.6.4-1.el7.centos.x86_64.rpm
    -rw-rw-r-- 1 xiaofang xiaofang 2257544 Aug  5 02:57 MariaDB-compat-10.6.4-1.el7.centos.x86_64.rpm
    [xiaofang@sd-vm-0004433 mariadb]$ 
    [xiaofang@sd-vm-0004433 mariadb]$ 
    [xiaofang@sd-vm-0004433 mariadb]$ sudo yum -y install MariaDB-com*
    

    2.2 安装MariaDB-client

    wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-client-10.6.4-1.el7.centos.x86_64.rpm
    

    执行安装:

    sudo yum -y install MariaDB-client-10.6.4-1.el7.centos.x86_64.rpm
    

    2.3 安装MariaDB-server

    wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-server-10.6.4-1.el7.centos.x86_64.rpm
    

    2.4 启动mariadb

    安装完成之后,启动mariadb,命令如下:

    sudo systemctl start mariadb
    

    2.5 设置root用户密码

    sudo mysql -uroot
    
    MariaDB[(none)]> set password = password("your_password");
    
    MariaDB[(none)]> quit;
    

    2.6 确认rsync和policycoreutils-python已安装

    sudo yum install rsync policycoreutils-python
    

    然后,将上述步骤,在其余两台机器上照着执行一遍。

    三、配置Galera各节点

    3.1 MariaDB-Node1(10.200.67.27)节点配置

    执行编辑命令:

    vi /etc/my.cnf.d/galera.cnf 
    

    内容如下:

    3.2 MariaDB-Node2(10.200.67.29)节点配置

    执行编辑命令:

    vi /etc/my.cnf.d/galera.cnf 
    

    内容如下:

    3.3 MariaDB-Node3(10.200.67.26)节点配置

    执行编辑命令:

    vi /etc/my.cnf.d/galera.cnf 
    

    内容如下:

    四、配置防火墙

    如果没有开启防火墙可以跳过此步骤。

    需要开放的端口有四个:

    • 3306: mariadb连接端口;
    • 4567: Galera Cluster复制同步端口;
    • 4568: 增量传输,其他节点状态检测端口;
    • 4444: 其他节点加入状态检测等作用;
    sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
    sudo firewall-cmd --permanent --zone=public --add-port=4567/tcp
    sudo firewall-cmd --permanent --zone=public --add-port=4568/tcp
    sudo firewall-cmd --permanent --zone=public --add-port=4444/tcp
    sudo firewall-cmd --permanent --zone=public --add-port=4567/udp
    
    sudo firewall-cmd --permanent --zone=public --add-source=10.200.67.27/32
    sudo firewall-cmd --permanent --zone=public --add-source=10.200.67.29/32
    sudo firewall-cmd --permanent --zone=public --add-source=10.200.67.26/32
    

    重启防火墙:

    sudo firewall-cmd --reload
    

    五、创建SELinux安全策略

    如果你没有开启SELinux安全策略,可以略过这一步。

    在三个服务器上,分别执行:

    sudo semanage port -a -t mysqld_port_t -p tcp 4567
    sudo semanage port -a -t mysqld_port_t -p udp 4567
    sudo semanage port -a -t mysqld_port_t -p tcp 4568
    sudo semanage port -a -t mysqld_port_t -p tcp 4444
    

    接下来,在所有三台服务器上运行以下命令,将 MySQL SELinux 域临时设置为许可模式。

    sudo semanage permissive -a mysqld_t
    

    六、启动集群

    依次在第三、第二、第一个服务器上执行如下命令,并使用systemctl status mariadb确认服务已关闭:

    sudo systemctl stop mariadb
    

    6.1启动第一个节点

    在第一个服务器节点执行:

    sudo galera_new_cluster
    

    查看注册节点状态:

    mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
    

    输出如下

    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | wsrep_cluster_size | 1     |
    +--------------------+-------+
    

    6.2启动第二个节点

    sudo systemctl start mariadb
    

    查看注册节点:

    mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
    

    输出如下:

    Output
    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | wsrep_cluster_size | 2     |
    +--------------------+-------+
    

    6.3启动第三个节点

    sudo systemctl start mariadb
    

    查看集群大小:

    mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
    

    输出如下:

    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | wsrep_cluster_size | 3     |
    +--------------------+-------+
    

    七、配置远程访问

    MariaDB [(none)]> use mysql;
    MariaDB [mysql]> grant all privileges  on *.* to root@'localhost' identified by "your_password";
    MariaDB [mysql]> grant all privileges  on *.* to root@'%' identified by "your_password";
    MariaDB [mysql]> FLUSH PRIVILEGES;
    

    八、集群测试

    在某一个节点创建测试数据库,看是否能同步。

  • 相关阅读:
    对数值计算numpy的一些总结,感兴趣的朋友可以看看
    mysql基础语法(部分)
    python_内建结构
    07_go语言基础
    06_go语言基础
    05_go语言基础常量
    04_go语言基础
    03_go语言基础
    02_go语言基础
    01_go语言基础
  • 原文地址:https://www.cnblogs.com/cobcmw/p/15217354.html
Copyright © 2011-2022 走看看