数据库同步工具
sqlserver,Mysql数据同步软件

Mysql高可用方案haproxy+keepalive+MariaDB Galera Cluster实现:MariaDB Galera Cluster部署 二)

购买事宜请联系QQ:1793040

1.服务器列表

节点名称 IP 端口 说明
node1 192.168.6.111

3306:mysql数据库端口

4567:wsrep使用端口

数据节点1
node2 192.168.6.112

3306:mysql数据库端口

4567:wsrep使用端口

数据节点2
node3 192.168.6.113

3306:mysql数据库端口

4567:wsrep使用端口

数据节点3

2.系统版本(所有节点均必需)

Linux系统版本:? CentOS 7.3 64位

带有wsrep补丁的MySQL:mysql-5.7.25_wsrep_25.10-linux-x86_64

在安装之前,我们可以检查系统是否装有MySQL:

如果是,类似

然后,您可以选择卸载:

检查是否有mariadb数据库,如果有,请将其卸载,按上述方法卸载

?如果是,则类似

然后卸载

如果是源代码编译和安装的卸载方法:https://blog.csdn.net/lch520baby/article/details/91860848

3.关闭防火墙(所有节点均必需)

永久有效,如果由于其他原因无法关闭防火墙,则打开端口3306和4567;相应的端口在生产环境中仍处于开放状态

4.关闭SElinux(所有节点都是必需的)

命令:getenforce

永久关闭(修改配置文件,您可以永久关闭)

将SELINUX =强制更改为SELINUX =禁用。更改之后,请记住要重新启动服务器才能生效,我在这里要永久关闭,您可以根据自己的需要暂时关闭

1.设置并安装海上百胜餐饮来源

添加以下内容

上面是国际镜像,可以配置家用镜像,下载速度更快,如下:

? 2.安装MariaDB

3.数据库配置

初始化数据库

?执行上述命令时,将需要设置一些问题,如下所示:

[root @ localhost]#mysql_secure_installation

注意:建议对所有MySQL运行该脚本的所有部分

服务器在生产中使用!请仔细阅读每个步骤!

为了登录MySQL以保护它,我们”需要当前的

root用户的密码。如果您刚刚安装了MySQL,并且

您尚未设置root密码,该密码将为空,

因此您只需在此处按Enter。

输入root用户的当前密码(不输入密码): \ lt; –直接输入首次运行

OK,成功使用密码,继续…

设置root密码可确保没有人可以登录MySQL

没有适当授权的root用户。

设置root密码? [是/否]? #是否设置root用户密码,输入y并按Enter或按Enter

新密码:?????? #设置root用户密码

重新输入新的密码:??? #输入您再次设置的密码

密码更新成功!

重新加载特权表..

…成功!

默认情况下,MySQL安装具有匿名用户,允许任何人

登录MySQL而无需为
创建用户帐户

他们。这仅用于测试和进行安装

顺畅一点您应该先删除它们,然后再进入

生产环境。

删除匿名用户? [是/否]? #是否删除匿名用户,建议在生产环境中删除,因此只需按Enter

…成功!

通常,仅应允许root从” localhost”连接。这个

确保某人无法猜测来自网络的root密码。

禁止远程root登录? [Y/n] #是否禁止root远程登录,请根据需要选择Y/n并按Enter,建议禁止

…成功!

默认情况下,MySQL带有一个名为” test”的数据库,任何人都可以

访问。这也仅用于测试,应删除

在进入生产环境之前。

删除测试数据库并访问它? [Y/n] #是否要删除测试数据库并按Enter键

-删除测试数据库…

…成功!

-删除测试数据库上的特权…

…成功!

重新加载特权表将确保到目前为止所做的所有更改

将立即生效。

现在重新加载特权表? [Y/n] #您是否要重新加载特权表并按Enter

…成功!

清理…

全做完了!如果您已完成上述所有步骤,则您的MySQL

现在安装应该是安全的。

感谢您使用MySQL!

[root @ localhost]#

修改远程登录(根据您的需要设置)

4.配置完成后关闭数据库

1.配置server.cnf

我们检查了/etc/my.cnf文件并成为以下配置

然后我们修改/etc/my.cnf.d/server.cnf?配置文件

2.192.168.6.111的配置如下:

配置说明:

wsrep_provider:galera的库文件的地址

wsrep_on:表示启用mariadb-gelera集群模式,否则启用独立的mariadb模式

wsrep_cluster_address:集群中其他节点的IP地址

binlog_format =行:记录binlog格式

default_storage_engine = InnoDB:使用的默认引擎

wsrep_slave_threads:并行复制线程数

innodb_flush_log_at_trx_commit = 2:

#0:日志缓冲区将每秒写入一次日志文件,并且日志文件的刷新(刷新到磁盘)操作将同时执行。在这种模式下,提交事务时,将不会主动触发写入磁盘的操作。

#1:每次提交事务后,MySQL都会将日志缓冲区数据写入日志文件,并刷新(刷新到磁盘),此模式是系统默认设置。

#2:每次提交事务时,MySQL都会将日志缓冲区数据写入日志文件,但不会同时执行刷新(刷新到磁盘)操作时间。在这种模式下,MySQL将每秒执行一次刷新(刷到磁盘)操作

innodb_buffer_pool_size = 1024M #设置缓冲池大小

wsrep_cluster_name:设置集群的名称

wsrep_node_address:设置当前节点的IP

wsrep_node_name =” test”:设置当前节点的名称,可以任意命名

wsrep_sst_method:设置集群中所有节点的数据同步方法

wsrep_sst_auth:设置用于集群中所有集群的相互认证的密码

3.配置其他节点

192.168.6.112、192.168.6.113如上配置/etc/my.cnf.d/server.cnf文件,注意,必须更改wsrep_node_name和wsrep_node_address主机名和节点的ip。

4.启动集群

在192.168.6.111服务器上输入galera_new_cluster命令以启动集群

查看集群状态

5.打开其他节点

打开192.168.6.112、192.168.6.113?上方的mariadb数据库:

查看集群状态?

您可以使用Navicat分别连接到集群中的数据库

在192.168.6.111上创建test1数据库,然后刷新192.168.6.112和192.168.6.113以查看test1数据库

至此,已经实现了mysql的实时同步复制。停止数据库后,它可以正常使用

MariaDB galera群集在所有停止后如何重新启动

1.基本上,这种情况不会在正式环境中发生

2.它可能会在测试环境中出现,例如在您自己的计算机上的多个虚拟机上进行测试,然后全部关闭,然后您要启动群集并报告错误

[解决方案]

1.通常第一次启动群集,请使用命令:galera_new_cluster,请分别参考其他版本

2.关闭并重新启动整个群集后,打开任何主机并输入命令:

vim/var/lib/mysql/grastate.dat

修改safe_to_bootstrap = 1

3.重新启动群集命令:galera_new_cluster

4.其他节点:systemctl start mariadb

MariaDB? Galera Cluster常见问题解答

问题1:执行 galera_new_cluster 命令时,报告错误:

[错误] WSREP:从该节点引导群集可能并不安全。它不是离开群集的最后一个,并且可能不包含所有更新。要对此节点强制执行群集引导,请手动编辑grastate.dat文件,并将safe_to_bootstrap设置为1。

解决方案:此问题的原因是,启动群集的节点不是离开群集的最后一个节点。可以通过以下方式解决此问题:

将/var/lib/mysql/grastate.dat文件设置为safe_to_bootstrap = 1,当然,我们不需要强制从该节点引导,我们逐一检查每个节点下的grastate.dat文件。 (此文件位于数据目录中),找到带有safe_to_bootstrap = 1的节点,然后在该节点上启动

问题2 :备用点始终无法加入集群
解决方案:在生产环境中,必须打开防火墙,但是我仅打开了4567,并且指定的ip打开了端口3306,这导致无法加入群集。您需要打开端口3306、4444、4567、4568才能正常启动

如果还有其他缺陷,请留言添加! !

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » Mysql高可用方案haproxy+keepalive+MariaDB Galera Cluster实现:MariaDB Galera Cluster部署 二)

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们