mysql设置主从数据库的同步

使用一台slave作为中继,分担Master的压力,slave中继需要开启bin-log,并配置log-slave-updates

在这里插入图片描述

Slave中继可使用Black-hole存储引擎,不会把数据存储到磁盘,只记录二进制日志。

M-M 双主互备(互为主从)

每个服务器需要做同样的同步更新,破坏了事物的隔离性和数据的一致性。

在这里插入图片描述

M-M-M

监控三台机器互相作对方的master

在这里插入图片描述

天生的缺陷:复制延迟,slave上同步要慢于master,如果大并发的情况那延迟更严重。

mysql在5.6已经自身可以实现fail over故障切换

One slave Muti master 一从对多主

好处:节省成本,将多个master数据自动化整合

缺陷:对库和表数据的修改较多

5.实现

=================================================================

5.1 环境准备


本地安装两个mysql,或者使用虚拟机,或者使用docker安装,需要准备两个mysql,本文使用docker安装

在docker中先创建两个mysql服务器

主服务器:3308

从服务器:3309

在这里插入图片描述

不会创建?点击此处

5.2 修改 my.cnf配置文件


  • master的my.cnf配置文件

#mysql master1 config

[mysqld]

server-id = 1 # 节点ID,确保唯一

log config

log-bin = mysql-bin #开启mysql的binlog日志功能

sync_binlog = 1 #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全

binlog_format = mixed #binlog日志格式,mysql默认采用statement,建议使用mixed

expire_logs_days = 7 #binlog过期清理时间

max_binlog_size = 100m #binlog每个日志文件大小

binlog_cache_size = 4m #binlog缓存大小

max_binlog_cache_size= 512m #最大binlog缓存大

binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

auto-increment-offset = 1 # 自增值的偏移量

auto-increment-increment = 1 # 自增值的自增量

slave-skip-errors = all #跳过从库错误

  • slave1的my.cnf配置文件

[mysqld]

server-id = 2

log-bin=mysql-bin

relay-log = mysql-relay-bin

replicate-wild-ignore-table=mysql.%

replicate-wild-ignore-table=test.%

replicate-wild-ignore-table=information_schema.%

6.进入master数据库,创建复制用户并授权

====================================================================================

依次执行

CREATE USER repl_user IDENTIFIED BY ‘root’;

CREATE USER ‘repl_user’@‘172.17.0.1’ IDENTIFIED BY ‘root’;

CREATE USER ‘repl_user’@‘192.168.1.2’ IDENTIFIED BY ‘root’;

root表示该用户的用户密码

在这里插入图片描述

你只需要修改的是将 192.168.1.2改为你自己主机的ip地址即可

查看自己创建用户是否成功

SELECT User, Host FROM mysql.user;

在这里插入图片描述

6.1 赋予该用户复制的权利


依次执行

grant replication slave on . to ‘repl_user’@‘%’;

grant replication slave on . to ‘repl_user’@‘172.17.0.1’;

grant replication slave on . to ‘repl_user’@‘192.168.1.2’;

FLUSH PRIVILEGES;

在这里插入图片描述

注意:我们接下来进行一个很重要的步骤,就是修改主库repl_user的plugin

依次执行以操作:

alter user ‘repl_user’@‘%’ identified with mysql_native_password by ‘root’;

alter user ‘repl_user’@‘172.17.0.1’ identified with mysql_native_password by ‘root’;

alter user ‘repl_user’@‘192.168.1.2’ identified with mysql_native_password by ‘root’;

在这里插入图片描述

6.2 查看master的状态


show master status;

在这里插入图片描述

7.配置从库

===================================================================

登录进入从库的mysql服务内执行以下命令

CHANGE MASTER TO

MASTER_HOST = ‘localhost’,

MASTER_USER = ‘repl_user’,

MASTER_PASSWORD = ‘root’,

MASTER_PORT = 3308,

MASTER_LOG_FILE=‘binlog.000002’,

MASTER_LOG_POS=1374,

MASTER_RETRY_COUNT = 60,

MASTER_HEARTBEAT_PERIOD = 10000;

在这里插入图片描述

注意你要修改以下内容:

在这里插入图片描述

7.1 启动从库slave进程


start slave;

附:停止从库进程:stop slave;

在这里插入图片描述

7.2 查看是否配置成功


show slave status\G

在这里插入图片描述

当这两个信息 都为yes时说明你配置成功啦。

8.测试主从同步

=====================================================================

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
mg-Z3fYL8Dn-1715852142328)]

[外链图片转存中…(img-LoE1ALvS-1715852142329)]

[外链图片转存中…(img-iYypyVx9-1715852142329)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值