MySQL集群搭建
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集群。让我解释每个选项的含义,并为你提供一些建议。
-
wsrep_on=ON
:- 启用Galera插件。
-
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
:- 指定Galera插件的位置。
-
wsrep_cluster_name=''
:- 设置集群的名称。这是一个标识符,用于区分不同的Galera集群。请在引号内提供一个唯一的名称。
-
wsrep_cluster_address='gcomm://galera1'
:- 指定Galera集群中其他节点的地址。在这里,只提供了一个节点的地址(
galera1
)。确保列出所有集群中的节点。
- 指定Galera集群中其他节点的地址。在这里,只提供了一个节点的地址(
-
wsrep_node_name='galera2'
:- 设置当前节点的名称。每个节点都应有唯一的名称。
-
wsrep_node_address='192.168.245.136'
:- 设置当前节点的IP地址。确保这是节点可以访问的IP地址。
-
wsrep_sst_auth=syncuser:'Qianfeng123!@'
:- 设置用于数据同步的用户名和密码。在这里,用户名是
syncuser
,密码是Qianfeng123!@
。确保密码是安全的。
- 设置用于数据同步的用户名和密码。在这里,用户名是
-
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
阶段测试 在任何一台机器上写数据,在其他机器上全部会同步
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果