VMware利用3台Ubuntu搭建MySQL主从同步集群服务器

 

借鉴了Percona官网文档:https://www.percona.com/doc/percona-xtradb-cluster/5.7/overview.html

准备三台Ubuntu 设置静态ip

 192.168.117.111        node1

192.167.117.112         node2

192.168.117.113         node3

 然后通过 xshell 等 ssh 工具 连接上3台服务器  ====》   允许root以ssh登录

 修改国内阿里镜像软件源    Ubuntu图形化界面换源

 

借鉴percona官网的安装说明:https://www.percona.com/doc/percona-xtradb-cluster/5.7/install/apt.html#apt

开始安装 percona-xtradb-cluster-server  三台服务器都要安装好

apt install percona-xtradb-cluster-server -y

设置好root密码 

 安装后直接进入mysql------》安装后默认是启动的

mysql -u root -p

输入安装时设置的root密码

创建一个 sstuser用户,密码是 password----- 对于第一个节点node1是必要的,其他两个可以不用创建

CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'password';

授予权限 

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';

 刷新权限 

FLUSH PRIVILEGES;

为了方便,我们将root用户允许其他主机登录

use mysql;

将下面的密码该处自己设置的root密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的root密码' WITH GRANT OPTION; 

刷新权限 

FLUSH PRIVILEGES;

这样就可以通过客户端登录到mysql了

 

 

关闭三台服务器的mysql   三台都要关闭掉

service mysql stop

在安装的时候你会发现percona集群服务器有好几个可以安装,其实大同小异。就是有些文件的位置并不一定一样。

接下来我们需要修改一些配置文件,如果你按照我安装的percona服务器 则直接复制我的代码即可

如果和我安装的percona服务器不一样,就找找配置文件对应的位置

Linux的配置文件一般都会存在/etc目录下,所以你可以通过 cd /etc/mysql  或者 /etc/perco 连按两下tab补全。查看能匹配到那些文件夹,接着进入查看里面的文件。通过cat 或 vim查看文件内容

如果发现那个文件是如图所示则说明就是了

在我的Ubuntu上则是/etc/mysql/my.cnf    其实修改percona-xtradb-cluster.cnf效果是一样的如下图

vim /etc/mysql/my.cnf

 

在node1服务器中加入如下代码    percona官网有说明每个参数的含义:percona官网链接

[mysqld]
server-id=1
wsrep_provider=/usr/lib/libgalera_smm.so

#集群的名称  和  所有服务器的  IP.用逗号隔开 这里需要修改
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.117.111,192.168.117.112,192.168.117.113

#当前服务器的名称   以及  IP   改成自己的服务器IP
wsrep_node_name=node1
wsrep_node_address=192.168.117.111

#授权方式 和 用户名和密码
#这里的用户名和密码是上面sql里创建的那个用户  以及 密码 所以不用填错了
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:password

pxc_strict_mode=ENFORCING

binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

上面的配置都来自官网----->

只是官网少了[mysql] 和 server-id后面我启动第一个节点报错了   这是一个坑 少了[mysqld]会报错启动不了

同样修改节点二  和 节点三  的配置,与第一个节点不同的地方如下

server-id=2
wsrep_node_name=node2
wsrep_node_address=192.168.117.112


 server-id=3
wsrep_node_name=node3
wsrep_node_address=192.168.117.113

 

上面的工作做完后

我们开始 启动第一个节点   需要注意的是第一个节点是需要以引导的方式启动,另外两个则正常的service 或者 systemctrl方式启动

引导的方式启动第一个节点   官网链接

/etc/init.d/mysql bootstrap-pxc

 等第一个节点启动完成后

我们正常的方式启动节点2和节点3 即可

node2 和 node3

service mysql start

 

 

验证集群是否正常

通过Navicat或者命令行下mysql -u root -p登录到第一个节点

Navicat:

 

 

然后我们测试一下PXC模式的双向同步

在node1新建一个数据库试试比如demo

 发现同步过来了

 

接着我们在node2中的demo中新建一个user表只包含id和name两个字段 

在其他两节点查看一下 会发现同步过来了

 

 

则说明集群搭建正常

如果你想在单台机器上搭建docker的percona集群则查看我的另外一篇博客:单服务器利用docker 虚拟mysql集群 

如果你想进一步了解 搭建Haproxy对mysql集群进行负载均衡则转至:Haproxy负载均衡MySQL集群服务器

 

 

到这一步我的VMware虚拟机的主机情况如下

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗水人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值