mysql5.7.25主从同步图解(主:CentOS7.5,从win10)

环境说明:
  主服务器:CentOS7.5
  从服务器:Windows10(本地测试机)

1. 配置master(主服务器,CentOS7.5)

1.1 首先查看CentOS上面的MySQL是否启动

systemctl status mysqld

1.2 修改MySQL配置文件

vi /etc/my.cnf

添加以下内容:

#服务器唯一id,默认是1(主从都必须不一样)
server-id=1000
#启动二进制日志名称为mysql-bin
log-bin=mysql-bin
#binlog-do-db与binlog-ignore-db互斥,设置其中一个即可
#binlog-do-db=需要同步的数据库名(多个数据库重复设置即可)
binlog-do-db=test01
#binlog-ignore-db=不需要同步的数据库01(多个数据库重复设置即可)
#binlog-ignore-db=不需要同步的数据库02(多个数据库重复设置即可)
#动清理30天之前的log文件(可自由指定时间)
expire_logs_days=30

1.3 重新启动MySQL

systemctl restart mysqld

1.4 创建备份账号与测试log_bin是否成功开启

1.4.1 登录主数据库
mysql -uroot -p

1.4.1 创建有复制权限的帐号

主机名可以是"%"、"192.168.0.%"、或者"192.168.1.106"这些格式,“%”为任意IP

mysql> grant replication slave on *.* to ‘用户名‘@‘主机‘ identified by ‘密码‘;

如果出现提示权限不足的情况,请按照以下方式操作

修改MySQL密码规则

// 修改密码策略方式为不限制(重启后恢复为默认规则)
mysql> set global validate_password_policy=0;
// 修改密码长度为最少6位(重启后恢复为默认规则)
mysql> set global validate_password_length=6;

重新设置密码(创建成功)

1.4.2 #查看主库的状态
mysql> show master status;

File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到

1.4.3 #查看big-log日志是否开启成功
mysql> show variables like ‘%log_bin%‘;

可以看到从 "/etc/my.cnf" 文件中添加的 log-bin=mysql-bin 日志已经启动
此时主库停止操作(为了保持主从数据库数据一致),等待从库连接后, 方可进行其他操作

2. 配置slaver(从服务器,Windows10)

2.1 关闭MySQL服务

使用管理员权限打开CMD,执行以下命令

// 关闭MySQL服务
net stop mysql57_01

2.2 修改MySQL配置文件

进入到MySQL的安装目录,编辑 my.ini 文件

在[mysqld]下添加以下内容(除了server_id必填,其他选填):

#从库配置
##服务器唯一id,默认是1(主从都必须不一样)
server_id=1001
##从机保存同步中继日志的位置
relay_log=slave-relay-bin
##当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,
##则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性
relay_log_recovery=1
##只读模式(普通用户)
read_only=1
##只读模式(超级管理员)
super_read_only=1

完整my.ini 文件内容如下:

[mysqld]
# 设置3307端口
port = 3307
# 设置mysql的安装目录
basedir=D:/Program Files/mysql-5.7.25-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:/Program Files/mysql-5.7.25-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认utf8
character-set-server=utf8
# 创建新表时使用的默认存储引擎
default-storage-engine=INNODB
# 设置sql语法模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#从库配置
##服务器唯一id,默认是1(主从都必须不一样)
server_id=1001
##从机保存同步中继日志的位置
relay_log=slave-relay-bin
##当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,
##则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性
relay_log_recovery=1
##只读模式(普通用户)
read_only=1
##只读模式(超级管理员)
super_read_only=1

##启用gtid类型,否则就是普通的复制架构(需要和主服务器配合使用,本例未完善)
#gtid_mode=on
##强制gtid的一致性
#enforce_gtid_consistency=1
##当mysql启动或重启时,mysql在搜寻gtid时是如何迭代使用binlog文件的.
##这个选项设置为真,会提升mysql执行恢复的性能.因为这样mysql-server启动和binlog日志清理更快
#binlog_gtid_simple_recovery = 1

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

2.3 启动MySQL服务

使用管理员权限打开CMD,执行以下命令

// 启动MySQL服务
net start mysql57_01

2.4 建立连接

2.4.1 登录mysql,关闭主从同步
// 登录mysql
mysql -u root -p -P3307
// 闭主从同步
mysql> stop slave;

2.4.2 关联主库和从库(操作之时主库停止操作)
change master to
    master_host=‘主库IP地址‘,
    master_port=主库端口,
    master_user=‘主库用户名‘,
    master_password=‘主库用户密码‘,
    master_log_file=‘要同步的文件名称‘,
    master_log_pos=要开始同步的位置;

注意:
  "master_log_file"和主库状态中的【File】内容一致
  "master_log_pos"要主库状态中的【Position】内容一致
  具体请参照【1.4.2 #查看主库的状态】章节
  如果关联发生错误,请检查错误后重置slave,然后重新执行即可

// 关闭主从同步
mysql> stop slave;
// 重置主从同步信息
mysql> reset slave;

2.4.3 开启主从同步
mysql> start slave;

2.4.4 查看从服务器状态
mysql> show slave status \G;


当出现Slave_IO_Running: Connecting的提示时,说明主库和从库没有连接上,一般有三点原因:
1.网络问题:检查网络连接是否能够连接上
2.密码或POS号错误:查看pos号和主库的号是否对应
3.防火墙的问题:查看主库防火墙的策略,数据库是否拒绝外来连接

3. 测试

3.1 主库原始信息

test库(不同步)的数据信息

test01库(同步)的数据信息

3.2 从库原始信息

test库(不同步)的数据信息

test01库(同步)的数据信息

3.3 主库修改信息

test库(不同步)新增一条信息

test01库(同步)新增一条信息

3.4 从库同步的信息

test库(不同步)的数据信息

test01库(同步)的数据信息

原文地址:https://blog.51cto.com/1197822/2362963

时间: 2024-10-08 03:35:43

mysql5.7.25主从同步图解(主:CentOS7.5,从win10)的相关文章

MySQL5.6 数据库主从同步安装与配置详解(Master/Slave)

MySQL5.6 数据库主从同步安装与配置详解(Master/Slave)本篇文章主要介绍了MySQL5.6 数据库主从同步安装与配置详解,具有一定的参考价值,有兴趣的可以了解一下.安装环境 操作系统 :CentOS 6.5 数据库版本:MySQL 5.6.27 主机A:192.168.1.1 (Master) 主机B:192.168.1.2 (Slave) 这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的. 本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望

CenOS 6.3下mysql-5.5.25主从服务器配置

环境准备: 在虚拟机上安装Cenos6.3,然后下载安装mysql, 关于在CenOS6.3下安装mysql-5.5.25这里就不在重复了,请看前面的博客http://shansongxian.blog.51cto.com/5040181/1429804   ,因为我们是作mysql主从服务器,肯定需要两台虚拟机来测试,如果再次去安装太麻烦了,这里我们使用vmware虚拟机的克隆功能,先将安装好的mysql服务器关闭,在所有的选项卡上右击----管理----克隆----克隆自"虚拟机中的当前状态

Mysql5.7.13主从同步(复制)配置

主从同步是分布式mysql数据库相当重要的配置,现在我在虚拟机上完成主从配置,系统是CenterOS6.5,mysql版本是5.7.13 主服务器的ip是192.168.19.139 副服务器的ip是192.168.19.142 1.主服务器配置 (1)修改my.cnf(注意使用root) 1 vim /etc/my.cnf 2 3 4 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 5 log-bin=mysqlbin-log 6 ser

mysql5.7.17主从同步配置

一.mysql同步原理 1.mysql主库在事务提交时将数据变更作为时间记录到二进制日志(binary log)中: 2.slave IO线程将master的binary log events读写到它的中继(Relay log): 3.slave SQL进程读取Relay log,将重做记录数据到数据库中. 二.主从同步配置 2,1.配置环境 masterIP:192.168.152.128 mysql version:5.7.17 本地多实例配置  端口为3307.3308. 前期已配置多实例

DNS服务器主从同步Windows主+Linux从(三)

(一)简介由于公司DNS服务器是以windows为主,由于经常打补丁,造成几次故障,故需要迁移到Linux,由于添加的记录过多,故采用以windows为主负责添加,修改解析记录,而Linux同步后进行接受业务请求的访问. 序号 IP 功能 系统 1 10.128.105.171 Master Windows 2 172.20.66.132 Slave- Linux (二)具体的步骤(1),windows安装配置省略 (2)Linux的具体步骤如下: 2.1安装bind[[email protec

MySQL主从同步与主主同步

MySQL复制: MySQL内建的复制功能是构建大型,高性能应用程序的基础.将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将mysql的某一台主机的数据复制到其它主机(slave)上,并重新执行一遍来实现. 复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循坏,这些日志可以记录发送到从服务器的更新.当一个从服务器 连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器

分布式部署应用时主从同步时候主键重复

原因: 解决方法: 用redis生成主键 /** * * @Title: getContractId * @user: zzx * @time: 2016年11月15日下午5:36:15 * //DESC 获取订单ID * @param param step:步长 * @return 当前分布式环境下最新ID * @return String 返回类型 * @throws */ public String getContractId(JSONObject param){ int step = p

mysql5.5主从同步复制配置

在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5.1.7以前版本与其以后的版本在主从同步部分参数不同.mysql5.1.7以后的版本中不支持master-connect-retry之类的参数.如果在my.cnf文件中加入该类似的参数,mysql会在下次重启时报错. 说明:主库master与从库slave都是centos6.5 64bit,如下: cat /

烂泥:mysql5.5主从同步复制配置

本文首发于烂泥行天下. 在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5.1.7以前版本与其以后的版本在主从同步部分参数不同.mysql5.1.7以后的版本中不支持master-connect-retry之类的参数.如果在my.cnf文件中加入该类似的参数,mysql会在下次重启时报错. 说明:主库master与从库slave都是centos6.5 64b