MySQL主从复制与主主复制

Mysql相互复制(互为主从)详细配置步骤 文章目录前言1. 设置数据库的配置文件库1:库22. 进入数据库创建从账号库1:库2:3. 查看生成的binlog日志,记录下来日志名字和起始位置。库1:库2:4. 进入数据库进行从读设置,指定要读的主服务库的地址、用户、密码、日志等库1:库2:5. 启动复制,并查看。库1:库2: 前言 环境:Centos7 数据库:Mysql5.7 库1地址:10.8.161.9 库2地址:10.8.161.18 1. 设置数据库的配置文件 库1: vim /etc/my.cnf [mysql] 下添加如下 se 阅读详情

MySQL主从复制与主主复制

主从复制:

1.环境说明:

准备两台linux虚拟主机
Linux版本CentOS7、MySQL 5.7.17
ip:192.168.1.1、192.168.1.2

2.创建复制账号

mysql会赋予一些特殊的权限给复制线程,在备库运行的I/O线程会建立一个到主库TCP/IP连接,这意味着必须在主库创建一个用户,并赋予其合适的权限,备库I/O线程以该用户名连接到主库并取其二进制日志;(摘自:高性能mysql => 复制)

在192.168.1.1 中创建一个192.168.1.2主机中可以登录的MySQL用户
//192.168.1.1 : 主数据库服务器:

mysql>GRANT REPLICATION SLAVE ON *.* TO 'tongbu'@'192.168.1.2' IDENTIFIED BY 'tongbu';
mysql>FLUSH PRIVILEGES;

注意1:这里我把这个账号限制在本地并且只有192.168.1.2这个主机可以访问,因为这是一个特殊权限的账号(尽管这个账号无法执行select或者update),但是任然能从二进制日志中获取一些数据(摘自:高性能mysql => 复制)

3.配置主库和备库

MySQL配置文件都在: /etc/my.cnf

1.在主库的my.cnf文件的[mysqld]下添加:log-bin,server_id(具体如下:)
log-bin=mysql-bin # 开启二进制日志
server_id=10 # 0-232任取 但必须和其他数据库中的不同  (必须唯一)!

注意:二进制日志必须开启,因为数据的同步实质上就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍。

2.保存后重启mysql
3.查看主库中MySQL服务器二进制文件名与位置
mysql>SHOW MASTER STATUS;

注意:这里重点关注File和Position这两项;

4.告知二进制文件名与位置

在备库中执行:

mysql>CHANGE MASTER TO
    >MASTER_HOST='192.168.1.1',
    >MASTER_USER='tongbu',
    >MASTER_PASSWORD='tongbu',
    >MASTER_LOG_FILE='mysql-bin.000001',
    >MASTER_LOG_POS=98;

完成主从复制配置

5.开启并查看

在备库中执行:

mysql>START SLAVE;   #开启复制
mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功

注意:当看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明状态正常(如有异常请看3.关于报错中提供的解决方案!)


主主复制:

1.设置配置文件(参考上面)

–192.168.1.1

server-id=11   #任意自然数n,只要保证两台MySQL主机不重复就可以了。
log-bin=mysql-bin   #开启二进制日志
auto_increment_increment=2   #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=1   #起始值。一般填第n台主MySQL。此时为第一台主MySQL
binlog-ignore=mysql   #忽略mysql库【我一般都不写】
binlog-ignore=information_schema   #忽略information_schema库【我一般都不写】
replicate-do-db=aa   #要同步的数据库,默认所有库

–192.168.1.2

server-id=12
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=2
replicate-do-db=aa

配置好后重启MySQL

2.创建复制账号并配置二进制文件名与位置

第一步:
在192.168.1.1中创建一个192.168.1.2主机中可以登录的MySQL用户

mysql>GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'root';
mysql>FLUSH PRIVILEGES;

第二步:
在192.168.1.1查看二进制日志名和位置

mysql>show master status;

在192.168.1.2中执行:

mysql>CHANGE MASTER TO
    >MASTER_HOST='192.168.1.1',
    >MASTER_USER='root',
    >MASTER_PASSWORD='root',
    >MASTER_LOG_FILE='mysql-bin.000001',
    >MASTER_LOG_POS=98;

第三步:
在192.168.1.2中创建一个192.168.1.1主机中可以登录的MySQL用户

mysql>GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.1' IDENTIFIED BY 'root';
mysql>FLUSH PRIVILEGES;

第四步:
在192.168.1.2查看二进制日志名和位置

mysql>show master status;

在192.168.1.1中执行:

mysql>CHANGE MASTER TO
    >MASTER_HOST='192.168.1.2',
    >MASTER_USER='root',
    >MASTER_PASSWORD='root',
    >MASTER_LOG_FILE='mysql-bin.000001',
    >MASTER_LOG_POS=98;
3.完成mysql主主复制

分别开启START SLAVE;

mysql>START SLAVE;   #开启复制
mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功

注意:当看到两台主机的Slave_IO_Running: YES、Slave_SQL_Running: YES才表明状态正常

3.关于报错

1.主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server
原因分析:
mysql 5.6的复制引入了uuid的概念,各个复制结构中的server_uuid得保证不一样,但是查看到直接copy data文件夹后server_uuid是相同的,show variables like ‘%server_uuid%’;
解决方法:
找到data文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid不一样,重启db即可

场景二:创建主从关系时copy了同样的my.cnf文件,报错
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids;
原因分析:
和server_uuid类似,servier_id也得保证不一样
解决方法:
找到my.cnf配置文件中的server_id,修改从库的server_id保证和复制结构中的其他db不一样,重启db即可

1、主主复制配置文件中auto_increment_increment和auto_increment_offset只能保证主键不重复,却不能保证主键有序。

2、当配置完成Slave_IO_Running、Slave_SQL_Running不全为YES时,show slave status\G信息中有错误提示,可根据错误提示进行更正。

3、Slave_IO_Running、Slave_SQL_Running不全为YES时,大多数问题都是数据不统一导致。

常见出错点:

1、两台数据库都存在db数据库,而第一台MySQL db中有tab1,第二台MySQL db中没有tab1,那肯定不能成功。

2、已经获取了数据的二进制日志名和位置,又进行了数据操作,导致POS发生变更。在配置CHANGE MASTER时还是用到之前的POS。

3、stop slave后,数据变更,再start slave。出错。

终极更正法:重新执行一遍CHANGE MASTER就好了。

MySQL主主复制(8.0版本) 1 主主复制简介 什么叫主主复制?即每台master既是master,又是另一台服务器的slave。这样,任何一方所做的变更,都会通过复制应用到另外一方的数据库中。就是两个 MySQL 都能读能写,数据记录通过二进制传达给对方从而保持数据的一致性。 2 环境: 系统:centos 7 mysql版本:8.0 生产环境共2台mysql服务器(以下对两台mysql分别简称为A B) A:192.168... 阅读详情

相关推荐

MySQL架构备份之双机热备——MySql 主从复制主主复制

M–S架构:实现双机热备(AB复制) 1、可以降低master读压力 2、可以对数据库做“热备”,热备只能解决硬件master硬件故障,软件故障等重大故障问题,但无法解决人为误操作导致的逻辑故障(列如输入错误的SQL语句把重要的记录删除了),所以常规的备份是必须。 环境准备及要求: 1、关闭防火墙和selinux 2、hosts文件中两台服务器主机名和ip地址一一对应起来 3、系统时间需要同步 4、master和slave的数据库版本保持一致(系统版本保持一致) 思路: 1、master必须开启二进制日志

Shallow的博客 5882

MySQL主主复制

MySQL主主复制

weixin_43991978的博客 1594

从IMU到机器人定位:手把手教你用ESKF(Error-State Kalman Filter)搞定传感器融合

本文详细介绍了如何使用ESKF(Error-State Kalman Filter)实现IMU多传感器的融合,解决机器人定位中的积分漂移问题。通过代码示例和Gazebo仿真案例,展示了ESKF在自动驾驶和移动机器人中的核心应用,包括误差状态建模、预测过程实现和观测更新策略,帮助开发者掌握这一高效滤波技术。

weixin_33275503的博客 257

mysql主主复制

配置 MySQL 主主复制 MySQL 主-主 复制 (master master replication), 也叫做 mysql chained replication、multi master replication和mysql daisy chaining replication, 它是MySQL复制功能的扩展(普通复制功能见文章下半部分),允许创建多个主服务器,并且主服务器可以绑定多个从服务器。 本文介绍设置主-主复制的方法。 在多主 mysql的配置中,除了第一个主服务器外。其它添加的主服务器既

a...Z 2114

mysql笔记:19. 主从复制主主复制

主从复制(也称AB复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。根据参数文件的配置,可以复制数据库中的所有数据。横向扩展解决方案:在多个从站之间分配负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。但是,读取可以在一个或多个从设备上进行。该模型可以提高写入性能(因为主设备专用于更新),同时显著提高了从设备的读取速度。

斌斌(Java) 2010

Mysql怎么配置主从复制主主复制

一. 配置主从复制 1. 什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库,从数据库的作用和使用场合一般有几个:                        一  是作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作;                        二  是可在从数据库作备份、数据统计等工作,这...

我仍然不知道那天所见花de名字 777

mysql主从复制主主复制的对比_MySQL主从复制主主复制

mysql主从复制:实验环境:linux CentOS7两台:192.168.230.10(主)----192.168.230.11(从)(系统安装好,关掉防火墙或配置好防火墙)mysql 5.7(下载了官方的yum源,yum install -y mysql mysql-server)开始配置:二进制日志开启一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配...

weixin_31947395的博客 663

mysql怎么换行_MySql主从复制主主复制

主从复制2-1:配置主服务器2-1-1:配置主服务器的 my.cnf 添加以下内容[mysqld]## 同一局域网内注意要唯一server-id=1## 开启二进制日志功能,可以随便取(关键)log-bin=mysql-bin如果你是使用我上面那种方式启动的MySql,那么你只需要去你相关联的宿主机的配置文件夹里面去建立一个 my.cnf 然后写入上面的类容就好了。比如:我的启动命令如下(不应该换...

weixin_33304092的博客 1086

Mysql主主复制 事务_MySQL主从复制MySQL主主复制

一、MySQL主从复制注意事项:主节点必须开启二进制日志,在从节点上务必开启中继日志;中继日志:从服务器上记录下来从主服务器的二进制日志文件同步过来的事件;下面来做一个小的实验,两个空的数据库的主从复制配置前注意事项:务必同步时间 ntpdate 172.18.0.1如果服务开启先停止服务,清空数据systemctl stop mariadbrm -rf /var/lib/mysql/*实验演示...

weixin_42161450的博客 165

Mysql主从复制主主复制 操作

windows环境下,Mysql主从复制主主复制 一、Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点。很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的。一般人都以为配置文件为C:\Program Files\MySQL\MySQL Server 5.7中的my-default.ini文件。但是实际上配置文件是C:\Pro...

猪年大吉的博客 460

配置mysql主主复制主从复制

配置mysql主主复制主从复制 安装的版本5.6.36 一、 安装mysql数据库 1、 安装mysql5.6.36 1) 删除系统自带yum源,挂载光盘 [root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-* [root@centos01 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@centos02 ~]# rm -rf /etc/yum.repos.d/CentOS-* [

江南靓仔的博客 391

mysql主从复制主主复制

两台服务器CentOS 7.6,MySQL5.6 A服务器IP:140.143.196.126 B服务器IP:152.136.142.183 准备工作:如果是阿里或腾讯的服务器一定要在安全组的出入站规则里加入3306端口,在防火墙里放行3306端口!!! 一、主从复制 设A服务器为主: MySQL配置文件my.cnf(一般Linux中的MySQL配置文件都在/etc/my.cnf;windows中的配置文件为mysql.ini) 开启二进制日志log-bin=mysql-bin 数据同步...

忆之乜 883

MySQL 复制技术详解

主从复制是一种常见的数据复制模式,其中一个数据库服务器作为主服务器(Master),负责处理所有的写操作和部分读操作,而一个或多个从服务器(Slave)负责复制主服务器的数据并处理读请求。这样可以实现读写分离,提高系统的性能和可用性。主主复制是一种高级的复制模式,两个MySQL服务器既是主服务器又是从服务器,能够互相同步数据。每个服务器既可以处理写操作,也可以处理从另一个服务器复制过来的写操作。高可用性:当一个服务器宕机时,另一个服务器可以继续提供服务。负载均衡。

www_tlj的专栏 2090

mysql数据库主主_MySQL主主复制(图文详解)

MySQL主主复制(图文详解)发布时间:2020-07-12 23:10:25来源:51CTO阅读:218作者:BonnieJason一、实现原理主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。对,就是将两个主从复制有机合并起来就好了。只不过在配置的时候我们需要注意一些问题,例如,主键重复,server-id不能重复等等。主主复...

weixin_39980929的博客 2816

MySQL主主复制主从复制

Linux环境下部署MySQL主从复制

wangzhibo001101的博客 1084

mysql主从复制

主从复制的原理是通过基于日志的复制方式实现数据的同步。当主服务器上发生数据变更时,会将这些变更写入二进制日志(Binary Log)中。从服务器通过连接到主服务器,请求从主服务器获取二进制日志,并将这些日志应用到自己的数据库中。

wada64的博客 1452

搭建mysql主从(主备)复制(主主复制)

搭建mysql主从复制(主主复制)

qq_19891197的博客 1201

MySql主主同步配置详解(2)

四、MySQL建立主主服务器配置方法   MySQL主主服务器的思路和主从差不多,本质就是让多台MySQL服务器间互为主从。本来只想写差异的地方,但文章逻辑不太好组织。   下面的是完整配置过程,如已按上面配置了主从架构,只需调整差异部分就好了。   A、环境描述   服务器A(主) 192.168.1.106   服务器B(主) 192.168.1.107   Mysql版本:5.5

budapest的专栏 8686

Apache ZooKeeper - Leader 选举 如何保证分布式数据的一致性

文章目录PreLeader 的协调过程ZK 是如何实现的 Pre Apache ZooKeeper - 选举Leader源码流程深度解析 在 ZooKeeper 集群中,服务器分为 Leader 服务器、 Follower 服务器以及 Observer 服务器。 我们可以这样认为,Leader 选举是一个过程,在这个过程中 ZooKeeper 主要做了两个重要工作,一个是数据同步,另一个是选举出新的 Leader 服务器。 今天我们继续来看下 ZooKeeper 集群中的数据同步问题。 Leader

小工匠 2万+

面试问题总结——关于YOLO系列(三)

接着上篇的的YOLO系列面试问题总结,加油,冲! 三.YOLOv3 1.YOLOv3主干网络BackBone——Darknet-53网络结构(因为有53个卷积层) (原论文中Darknet53的尺寸是在图片分类训练集上训练的,所以输入的图像尺寸是256x256,而在YOLOv3中输入尺寸是416×416)   ①上图中,Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪呢?   我们知道ImageNet有大概1000个分类,而模型预测某张图片时,会给出1000个按概率从高.

boss-dog 1万+

【激光雷达】基于matlab单光子激光雷达在各种工况下的性能分析【含Matlab源码 13970期】.zip

Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白;1、从视频里可见完整代码的内容主函数:main.m;调用函数:其他m文件;无需运行 运行结果效果图;2、代码运行版本Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主;3、运行操作步骤步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果;4、仿真咨询如需其他服务,可私信博主;4.1 博客或资源的完整代码提供4.2 期刊或参考文献复现4.3 Matlab程序定制4.4 科研合作

上一篇: [29]Cookie与存储
下一篇: [30]XML
北川Alex
博客等级 码龄10年 138粉丝 142原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值