mysql安装galera集群

配置galera源

vim /etc/yum.repo.d/galera.repo  /写入文件
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
enabled=1
gpgcheck=0

安装阿里云epel源

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

编辑hosts vim /etc/hosts

89.213.0.37 node2
45.67.86.14 node
38.47.106.186 master

查看安装包

yum list | grep 'galera'

安装所需安装包以及集群定制mysql

yum install mysql-wsrep-5.7.x86_64 galera  rsync -y

启动数据库(所有机器): 开始初始化步骤

systemctl start mysqld

查看密码

cat /var/log/mysqld.log |grep password

改密码

mysqladmin -u root -p password

创建授权用户

grant all on *.* to 'admin'@'%' identified by 'Wang@qwer123';

编辑配置文件

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='master' 
wsrep_node_address='38.47.106.186' 
wsrep_sst_auth=syncuser:'Wang@qwer123' 
wsrep_sst_method=rsync

每台机器都要改

galera2配置:主配置文件my.cnf追加如下内容 

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://master' 
wsrep_node_name='node' 
wsrep_node_address='45.67.86.14'
wsrep_sst_auth=syncuser:'Wang@qwer123' 
wsrep_sst_method=rsync

node3一样配置

galera3配置:主配置文件my.cnf追加如下内容
server-id=3 
binlog_format=row i
nnodb_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://master,node' 
wsrep_node_name='node2' 
wsrep_node_address='89.213.0.37' 
wsrep_sst_auth=syncuser:'Wang@qwer123' 
wsrep_sst_method=rsync

GPT解释 这是一些Galera Cluster的配置选项,用于配置MySQL节点以参与Galera集群。让我解释每个选项的含义,并为你提供一些建议。

  1. wsrep_on=ON

    • 启用Galera插件。
  2. wsrep_provider=/usr/lib64/galera/libgalera_smm.so

    • 指定Galera插件的位置。
  3. wsrep_cluster_name=''

    • 设置集群的名称。这是一个标识符,用于区分不同的Galera集群。请在引号内提供一个唯一的名称。
  4. wsrep_cluster_address='gcomm://galera1'

    • 指定Galera集群中其他节点的地址。在这里,只提供了一个节点的地址(galera1)。确保列出所有集群中的节点。
  5. wsrep_node_name='galera2'

    • 设置当前节点的名称。每个节点都应有唯一的名称。
  6. wsrep_node_address='192.168.245.136'

    • 设置当前节点的IP地址。确保这是节点可以访问的IP地址。
  7. wsrep_sst_auth=syncuser:'Qianfeng123!@'

    • 设置用于数据同步的用户名和密码。在这里,用户名是syncuser,密码是Qianfeng123!@。确保密码是安全的。
  8. wsrep_sst_method=rsync

    • 设置用于全量同步的方法。在这里使用的是rsync,这是一种常见的同步方法。你也可以选择其他方法,如xtrabackup。

基于你的配置,如果要对其进行修改,可以考虑以下几点:

  • wsrep_cluster_name 设置一个唯一的集群名称。
  • wsrep_cluster_address 添加所有集群中节点的地址。
  • wsrep_node_name 设置每个节点的唯一名称。
  • wsrep_node_address 确保提供每个节点的可访问IP地址。
  • wsrep_sst_auth 使用安全的用户名和密码。
  • wsrep_sst_method 根据需要选择合适的同步方法。

修改完配置后,确保在每个节点上应用这些更改,并重启MySQL服务使其生效。如果你遇到任何问题,请查看MySQL和Galera的日志文件以获取更多详细信息。

验证操作

全部机器重新启动,没有报错是正常的。

systemctl restart mysqld

看端口

ss -tunlp |grep 3306

数据库表单验证

show status like 'wsrep%';

正常会显示3个ip 阶段测试 在任何一台机器上写数据,在其他机器上全部会同步