您当前的位置:首页 > 计算机 > 软件应用 > 其它软件

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

时间:08-27来源:作者:点击数:

借鉴了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虚拟机的主机情况如下

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门