返回顶部
首页 > 资讯 > 数据库 >MySQL实现配置主从复制项目实践
  • 836
分享到

MySQL实现配置主从复制项目实践

2024-04-02 19:04:59 836人浏览 安东尼
摘要

目录一、检测通信二、master配置1. 开启二进制日志2. 创建一个用于主从库通信用的账号3. 获取binlog文件名和position三、slave配置1. 配置全局唯一的ser

一、检测通信

查看master(Centos7)和slave(win10)的ip地址,并检测是否可以相互通信

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到这里我们知道,master的ip为192.168.131.129,slave的ip为192.168.0.6,并且可以相互通信

查看防火墙状态

systemctl status firewalld.service

临时手动启动、停止防火墙

systemctl start firewalld.service
systemctl stop firewalld.service

持久打开、关闭防火墙(重启服务生效)

systemctl enable firewalld.service
systemctl disable firewalld.service

在这里插入图片描述

开放3306端口

在这里插入图片描述

二、master配置

1. 开启二进制日志

配置log_bin和全局唯一的server-id,和slave区分开,不能配置成一样的(如果是my.cnf新添加配置,一定要重启Mysql服务)

在这里插入图片描述

2. 创建一个用于主从库通信用的账号

即在master中创建一个账号,用于slave登录master读取binlog

虽然我们在linux上查看的ip地址是192.168.131.129,但我们创建账户登录时不写这个ip,写的是192.168.131.1。因为我这里虚拟机用的是NAT模式,虚拟机(master)和物理机(slave)通信的时候,虚拟机先把数据发送到网关192.168.131.1(默认与VMnet8通信),192.168.131.1再转发到物理机,所以物理机接收到的是192.168.131.1的数据,故我们在master上为slave创建账户的时候,应该写192.168.131.1

在这里插入图片描述

如果给slave配置的不是网关192.168.131.1地址,错误日志(可在my.cnf中指定)中会有如下信息:

在这里插入图片描述

意思是从192.168.131.1的mslave用户权限不够,那是因为我们在master上配置的是允许从其他地址登录,并不是允许从192.168.131.1地址登录,这就导致权限不够。

由于master这边收到的就是来自192.168.131.1的请求,所以错误日志显示的是192.168.131.1

所以创建账户的命令应如下:

mysql> CREATE USER 'mslave'@'192.168.131.1' IDENTIFIED BY '1qaz@WSX';
mysql> GRANT REPLICATION SLAVE ON *.* to 'mslave'@'192.168.131.1' IDENTIFIED BY '1qaz@WSX';
mysql> FLUSH PRIVILEGES;

开启主从复制的权限,从库可以通过这个账户和密码,从这个IP来请求访问这个主库上的任意库,同步这个主库的任意库里的任意表

3. 获取binlog文件名和position

看当前二进制日志的名字,主库的更新是往哪个binlog写的,以及当前写日志的位置,从这个位置往后开始进行主从同步

show master status;

在这里插入图片描述

三、slave配置

1. 配置全局唯一的server-id

找到my.ini

在这里插入图片描述

配置全局唯一的server-id

在这里插入图片描述

重启MySQL服务

在这里插入图片描述

2. 使用master创建的账户读取binlog同步数据

这一步配置主要是给IO线程读取binlog使用

mysql> CHANGE MASTER TO MASTER_HOST='192.168.131.129',MASTER_PORT=3306,MASTER_USER='mslave',MASTER_PASSWord='1qaz@WSX',
MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=1262;

MASTER_HOST:指定master的ip
MASTER_LOG_FILE:binlog文件名
MASTER_LOG_POS:binlog的position

3. 开启slave服务

通过show slave status命令查看主从复制状态,show processlist查看master和salve相关线程的运行状态

在这里插入图片描述

四、配置中可能出现的问题

1. 网络连接问题

通过show slave status命令查看主从复制状态

在这里插入图片描述

连接connection错误,先考虑是否网络互通,ping一下

然后再检查从库里面的配置信息是否正确

在这里插入图片描述

如果都正确,还可以检查一下master的3306端口是否可以连接

telnet xxx.xxx.xxx.xxx 3306

最重要的是,自己玩的时候,如果虚拟机是NAT模式,则需要写成VMnet8网关ip。如果都是物理机通信,那直接写正确的ip即可

可以在MySQL数据库下的mysql库的user表中更改允许登录的ip

在这里插入图片描述

然后重新赋予权限

mysql> GRANT REPLICATION SLAVE ON *.* to 'mslave'@'xxx.xxx.xxx.xxx' IDENTIFIED BY '1qaz@WSX';

出现错误后还可以查看错误日志中提示的ip是否和自己允许slave登录的ip一致

在这里插入图片描述

2. binlog的position问题

在这里插入图片描述

在master中查看show master status一下binlog日志文件名以及position,然后用命令重新配置slave,比如:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.131.129',MASTER_PORT=3306,MASTER_USER='mslave',MASTER_PASSWORD='1qaz@WSX',
MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=1262;

配置slave前需要stop slave,配置完成再start slave

3. SQL线程出错

问题发生原因如下:

首先配置主从复制的时候,slave的mytest库中没有user表,而master的mytest库已经有user表了

配置好主从复制后直接drop table mytest.user,这就会写到binlog里面,然后在通过dump线程和IO线程将这个操作发送到从库的relay log,然后从库的SQL线程从relay log里把drop table mytest.user捞出来在从库执行这个SQL,可从库的mytest根本就没有user表,这就是删除一个不存在的表,于是出现错误了

在这里插入图片描述

一般我们不会做这样的操作,一般都是主从配置以后,slave从数据开始增量进行同步,先做数据的增量,然后做数据的增删改查

不会配置好主从复制后,一开始就删主库的东西,如果真的出现这样的问题,随时可以在从库 show slave status,来查看主从同步的状态,有什么错误,就相应解决

要么在stop slave,把position重新设置一下,start slave,即重新开启主从同步,从最新的位置,这个drop操作不需要在从库上同步

要么就是stop,跳过该个错误,然后start

stop slave;
set global sql_slave_skip_counter=1;
start slave;

可以通过show slave status查看以下标识,IO线程出错一般是网络问题,SQL线程出错一般是SQL在slave库执行出现了问题

在这里插入图片描述

 到此这篇关于MySQL实现配置主从复制项目实践的文章就介绍到这了,更多相关MySQL  主从复制内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL实现配置主从复制项目实践

本文链接: https://lsjlt.com/news/144641.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL实现配置主从复制项目实践
    目录一、检测通信二、master配置1. 开启二进制日志2. 创建一个用于主从库通信用的账号3. 获取binlog文件名和position三、slave配置1. 配置全局唯一的ser...
    99+
    2024-04-02
  • MySQL 配置主从复制实践分享
    目录一、检测通信二、master配置1. 开启二进制日志2. 创建一个用于主从库通信用的账号3. 获取binlog的日志文件名和position三、slave配置1. 配置全局唯一的server-id2. 使用maste...
    99+
    2022-07-14
    MySQL 配置主从复制 MySQL 主从复制
  • MySQL 配置主从复制实践分享
    目录一、检测通信二、master配置1. 开启二进制日志2. 创建一个用于主从库通信用的账号3. 获取binlog的日志文件名和position三、slave配置1. 配置全局唯一的...
    99+
    2024-04-02
  • MySql主从复制实现原理及配置
    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个...
    99+
    2022-05-18
    MySql 主从复制
  • mysql实现主从复制
    Mysql的 Replication 是一个异步的复制过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),从一个 Mysql instace(我们称之为 Master)复制到另一个 ...
    99+
    2024-04-02
  • MySQL主从复制配置
    配置主数据库: my.cnf: server-id       = 1 log-bin  重启数据库 登录并查看: ...
    99+
    2024-04-02
  • MySQL 5.6 主从复制配置
    一、前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主...
    99+
    2024-04-02
  • MySQL配置SSL主从复制
    MySQL5.6 创建SSL文件方法 官方文档:https://dev.mysql.com/doc/refman/5.6/en/creating-ssl-files-using-openssl.html#c...
    99+
    2024-04-02
  • Mysql实现主从配置和多主多从配置
    我们现在模拟的是主从(1台主机、一台从机),其主从同步的原理,就是对bin-log二进制文件的同步,将这个文件的内容从主机同步到从机。 一、配置文件的修改 1、主机配置文件修改配置 我们首先需要mysql主机(1...
    99+
    2022-05-30
    Mysql 主从配置 Mysql 多主多从配置
  • MySQL 主从复制原理与实践详解
    本文实例讲述了MySQL 主从复制原理与实践。分享给大家供大家参考,具体如下: 简介 MySQL 的主从复制又叫 Replication、AB 复制。至少需要两个 MySQL 服务(可以是同一台机器,也可以是不同机器...
    99+
    2022-05-11
    MySQL 主从复制
  • 详解Redis主从复制实践
    目录复制简介服务介绍实现方式1. 服务启动时配置2. 命令行配置3. 配置文件配置4.配置说明效果测试1.主服务器添加数据2.从服务器获取数据实现原理实现策略1.全量复制2.部分复制...
    99+
    2024-04-02
  • CentOs7中mysql5.7如何实现主从复制配置
    这篇文章主要介绍CentOs7中mysql5.7如何实现主从复制配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySQL5.7主、从配置具体步骤:...
    99+
    2024-04-02
  • mysql主从复制配置过程
    主库配置 1. 配置mysql vim /etc/my.cn # 在文件中增加以下内容 server-id=1 # 保证server id唯一 log-bin = /var/lib/mysql/mysql-bin...
    99+
    2022-05-23
    mysql 主从复制 mysql 主从复制配置
  • 【MySQL】主从异步复制配置
    简介: Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程...
    99+
    2024-04-02
  • mysql如何实现双主复制配置
    这篇文章主要介绍了mysql如何实现双主复制配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  两台...
    99+
    2024-04-02
  • Mysql如何实现主从配置和多主多从配置
    这篇文章主要介绍了Mysql如何实现主从配置和多主多从配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们现在模拟的是主从(1台主机、一台从机),其主从同步的原理,就是对b...
    99+
    2023-06-15
  • mysql主从复制实践之单数据库多实例
    1.主从复制数据库实战环境准备       MySQL主从复制实践对环境的要求比较简单,可以是单机单数据库多实例的环境,也可以是两台服务器之间,每台服务器都部署一个独...
    99+
    2024-04-02
  • 主从复制原理以及实践
    Mysql主从复制原理及配置输入的命令蓝色字体:注释×××背景:重要小标题:蓝底白字1.复制概述Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制...
    99+
    2024-04-02
  • 基于 SSL 实现MySQL主从复制
    1、主服务器配置1)、在主服务器创建SSL/RSA文件 #在MySQL5.7之后,安装完毕MySQL会在data目录下自动生成,这里模拟没有这些文件 [[email protected] ~]# mysql_ssl_rsa_setup...
    99+
    2016-06-28
    基于 SSL 实现MySQL主从复制 数据库入门 数据库基础教程 数据库 mysql
  • mysql主从复制架构及实现
    mysql主从复制架构及实现 mysql主从复制配置 主节点: 启动二进制日志 为当前节点设置一个全局唯一的ID号(server-id) 创建有复制权限的用户账号(replication sl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作