MySQL Galera Cluster部署

目录

一、环境准备

主机解析:

galera1:

galera2:

galera3:

galera4:

四台虚拟机都导入创建该服务的yum源

四台虚拟机都下载mysql-wsrep-8.0和galera

二、配置

四台服务都配置一个远程用户并授权,采用脚本方式执行

四台虚拟机服务都先停止

[三、在给galera1 主机的my.cnf的文件增加节点](#三、在给galera1 主机的my.cnf的文件增加节点)


一、环境准备

主机名 IP 系统 软件版本 配置信息
galera1 192.168.33.128 Rocky_linux9.4 mysql-wsrep-8.0 galera-26.4.14-1 2核4G
galera2 192.168.33.129 Rocky_linux9.4 mysql-wsrep-8.0 galera-26.4.14-1 2核4G
galera3 192.168.33.130 Rocky_linux9.4 mysql-wsrep-8.0 galera-26.4.14-1 2核4G
galera4 192.168.33.131 Rocky_linux9.4 mysql-wsrep-8.0 galera-26.4.14-1 2核4G

注意:关闭防火墙和selinux,进行时间同步。

复制代码
systemctl disable --now firewalld ###关闭防护墙
复制代码
setenforce 0 ### 关闭selinux
复制代码
timedatectl set-timezone Asia/Shanghai###同步时间
在四台主机分别解析:
galera1:
复制代码
[root@galera1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.128 galera1
192.168.33.129 galera2
192.168.33.130 galera3
192.168.33.131 galera4
e
galera2:
复制代码
[root@galera2 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.128 galera1
192.168.33.130 galera3
192.168.33.131 galera4

e

galera3:
复制代码
[root@galera3 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.129 galera2
192.168.33.128 galera1
192.168.33.131 galera4
galera4:
复制代码
[root@galera4 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.129 galera2
192.168.33.130 galera3
192.168.33.128 galera1

四台虚拟机都分别导入创建该服务的yum源

复制代码
[root@galera1 ~]# cat  <<e >> /etc/yum.repos.d/mysql-wsrep.repo
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-8.0/redhat/8/x86_64/
enabled=1
gpgcheck=0
e
复制代码
[root@galera1 ~]# yum clean all

四台虚拟机都下载mysql-wsrep-8.0和galera

复制代码
[root@galera1 ~]# yum install -y mysql-wsrep-8.0 galera 

二、配置

四台虚拟器都启动服务,并改个密码

复制代码
[root@galera1 ~]# systemctl start mysqld
复制代码
获取数据库初始化密码:
cat /var/log/mysqld.log  | awk '/[^_]password/{print $NF}' | tr -d ' '
复制代码
修改密码为'Q1w2e3@123!!!!!':
mysqladmin -p password 'Q1w2e3@123!!!!!'

四台主机可修改成同意密码;

四台服务都配置一个远程用户并授权,采用脚本方式执行

复制代码
[root@galera1 ~]# vim user.sh
#!/bin/bash
​
# MySQL 连接参数
​MYSQL_USER="root"
MYSQL_PASS='Q1w2e3@123!!!!!'  # 替换为实际的 root 密码
MYSQL_HOST="localhost"           # 或者使用 IP 地址
​# 创建远程用户和授予权限的 SQL 命令
​SQL_COMMANDS="
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'Q1w2e3@123!!!!!';
GRANT ALL PRIVILEGES ON *.* TO 'syncuser'@'%';
FLUSH PRIVILEGES;
"
chmod +x user.sh
复制代码
[root@galera1 ~]# sh user.sh

四台虚拟机服务都先停止

复制代码
[root@galera1 ~]# systemctl stop mysqld

1.配置 galera1 主机的my.cnf的文件

复制代码
[root@galera1 ~]# vim /etc/my.cnf   

server-id=1                         
binlog_format=row                   
innodb_file_per_table=1            
innodb_autoinc_lock_mode=2          
​
wsrep_on=ON                         
wsrep_provider=/usr/lib64/galera/libgalera_smm.so       
wsrep_cluster_name='galera'         
wsrep_cluster_address='gcomm://'    
wsrep_node_name='galera1'           
wsrep_node_address='192.168.166.17'  
wsrep_sst_auth=syncuser:'Q1w2e3@123!!!!!'  
wsrep_sst_method=rsync  

启动galera1主机的mysql

复制代码
[root@galera1 ~]# systemctl start mysqld

2、配置 galera2 主机的my.cnf的文件

复制代码
[root@galera2 ~]# systemctl start mysqld
server-id=2
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
​
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://galera1,galera3,galera4'
wsrep_node_name='galera2'
wsrep_node_address='192.168.166.18'
wsrep_sst_auth=syncuser:'Q1w2e3@123!!!!!'
wsrep_sst_method=rsync

启动galera2主机的mysql

复制代码
[root@galera2 ~]# systemctl start mysqld

3、配置 galera3 主机的my.cnf的文件

复制代码
[root@galera3 ~]# vim /etc/my.cnf
server-id=3
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
​
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://galera1,galera2,galera4'
wsrep_node_name='galera3'
wsrep_node_address='192.168.166.19'
wsrep_sst_auth=syncuser:'Q1w2e3@123!!!!!'
wsrep_sst_method=rsync

启动galera3主机的mysql

复制代码
[root@galera3 ~]# systemctl start mysqld

三、在给galera1 主机的my.cnf的文件增加节点

复制代码
[root@galera1 ~]# vim /etc/my.cnf  

重启动galera1主机的mysql

复制代码
[root@galera1 ~]# systemctl restart mysqld

1、配置 galera4 主机的my.cnf的文件*

先关闭MySQL

复制代码
[root@galera3 ~]# vim /etc/my.cnf
server-id=4
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
​
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://galera2,galera3,galera1'
wsrep_node_name='galera4'
wsrep_node_address='192.168.166.20'
wsrep_sst_auth=syncuser:'Q1w2e3@123!!!!!'
wsrep_sst_method=rsync

启动galera4主机的mysql

复制代码
[root@galera4 ~]# systemctl start mysqld
相关推荐
教程分享大师8 小时前
创维E900V22D当贝固件全网通线刷机包 刷机教程开启adb权限及root权限
adb
吉凶以情迁8 小时前
tcl 电视进入开发者模式以及adb进入设置以及各电视打开开发者模式用电脑控制的办法
adb·电脑
阿杰100018 小时前
ADB(Android Debug Bridge)是 Android SDK 核心调试工具,通过电脑与 Android 设备(手机、平板、嵌入式设备等)建立通信,对设备进行控制、文件传输、命令等操作。
android·adb
_Mistletoe8 小时前
adb基础操作及如何使用adb实现设备间的文件传输
adb
XuanRanDev8 小时前
Mumu模拟器12开启ADB调试方法
adb
YIN_尹18 小时前
【MySQL】数据类型(上)
android·mysql·adb
alonewolf_991 天前
MySQL Explain详解与索引优化实战
数据库·mysql·adb
TA远方1 天前
【Android】adb常用的命令用法详解
android·adb·管理·控制·命令
xuekai200809011 天前
mysql-组复制 -8.4.7 主从搭建
android·adb
尽兴-2 天前
MySQL 中一条 SQL 的执行流程详解
sql·mysql·adb·dba