目录
四台虚拟机都下载mysql-wsrep-8.0和galera
一、环境准备
主机名 | 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