千家信息网

MySQL5.6 主从复制(简单版)

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,几种常见的Replication拓扑结构:1.单master----多slaveslave之间互不通信,只和master通信适用于读压力比较大的应用场景,将读操作分布到不同的slave中,减小mast
千家信息网最后更新 2026年11月01日MySQL5.6 主从复制(简单版)

几种常见的Replication拓扑结构:

1.单master----多slave

slave之间互不通信,只和master通信

适用于读压力比较大的应用场景,将读操作分布到不同的slave中,减小master压力


2.多master----单slave

mysql貌似暂不支持,个人认为通过slave多实例实现


3.主动模式的Master----Master

当前master是另一master的slave

问题:同时更新一个操作产生冲突


4.主动-被动模式的Master----Master

只能有一个可读


5.级联复制的Master----Slaves----Slaves

结构1中的replication导致slave连上master的线程过多,replication的压力过大

级联可以一定程度上缓解master的压力,但是需要设置log_slave_updates=1。

每级slave是下级slave的master,所有重做中继日志同样需要写入binlog中


下面安装的是最基本的单slave单master

第一步:准备工作

操作系统:Centos7.1

数据库:mysql-5.6.30

主host:172.17.220.145

从host:172.17.220.220


第二步:设置防火墙

Centos7.1默认防火墙为firewalld,需要通过yum安装iptables-service

分别在主从服务器中:

vi /etc/sysconfig/iptables

在"-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT"后增加

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

systemctl start iptables.service


第三步:修改主数据库的配置文件my.cnf

server-id=145(主服务器的ID值,建议为ip最后一段)

log_bin = /opt/mysql/data1/mysql-bin.log(二进制日志)

log_slave_updates = 0 (0表示slave将复制事件写进自己的二进制日志)

binlog_format=MIXED (二进制日志类型)


第四步:修改从数据库的配置文件my.cnf

server-id=224

log_bin = /opt/mysql/data1/mysql-bin.log(如果该slave为其他slave的master,必须开启二进制)

#relay_log=

read_only=1 (防止从库修改数据,从库只读)

log_slave_updates = 1


第五步:创建master用户

登录主数据库

mysql> GRANT REPLICATION SLAVE ON *.* TO 'mypri'@'172.17.220.145' IDENTIFIED BY '123456';


第六步:重启主从数据库

service mysql restart


第七步:假如主库存在数据

5.1 先对主库锁表,不让数据再进行写入

mysql> flush tables with read lock;

5.2 主库 mysqldump -uroot -p --all-databases >all.sql(导出所有数据库)

5.3 若从库不存在数据,则导入all.sql到从库

mysql -uroot -p

从库本身存在数据,先备份从库,再删除从库中的数据,仅保留mysql、information_schema、performance_schema

5.4 主数据库 unlock table

5.5 主数据库 show master status; 获取master_log_file与master_log_pos


第八步: 从服务器slave启动

change master to master_host='172.17.220.145',

master_user='mypri',

master_password='123456',

master_log_file='mysql-bin.000021',(show master status获取)

master_log_pos=1212, (show master status获取)

master_connect_retry=60;(超时重连)


启动slave:start slave;

show slave status\G 验证是否成功

成功与否主要看:

Slave_IO_Running=Yes

Slave_SQL_Running=Yes

错误信息:

1. slave have equal MySQL Server UUIDs

这个问题的主要原因是本人进行了虚拟机复制,导致主从数据库的server_id或server_uuid一致

查看server_id:show variables like 'server_id';

查看server_uuid:show variables like 'server_uuid';

server_id一致,修改my.cnf文件

server_uuid一致

删除从库中的$data_path/data/auto.cnf

然后重启从库

查看主库上的几个重要参数:

show variables like '%autocommit%'; 自动提交是否开启

show variables like '%innodb_flush_method%'; innodb引擎的表刷新方式 O_DIRECT

show variables like '%sync_binlog%';

sync_binlog=0:不主动刷新二进制日志文件的数据到磁盘上,由操作系统决定

sync_binlog=N:向二进制日志文件写入N条SQL或N个事务后,二进制日志文件的数据刷新到磁盘上;


数据 数据库 二进制 日志 文件 压力 主从 一致 主动 服务器 服务 成功 操作系统 模式 磁盘 系统 结构 问题 防火墙 通信 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 新华互联网科技学院 金融科技创新监管互联网金融 麻工互联网科技 科技制造互联网公司 迪茉互联网科技 极限挑战互联网科技 北京禾田雨橡互联网科技 深圳艾佳互联网科技 科技类的互联网平台 北京三清互联网科技 互联网媒体平台算高科技产业 浙南科技城互联网大厦建设工程 山东子淼互联网科技有限公司 陕西云淼互联网科技公司 福州德业互联网科技 中国新注册互联网科技 互联网科技机房 米泉互联网科技专业怎么样 华人运通互联网科技公司 上海互联网科技有限公司 欧洲十大科技互联网公司 宜昌元轩互联网科技有限公司 电子科技大学互联网创业大赛 锡山区互联网智能科技产品供应 从那以后互联网科技有限公司 珠海东科互联网科技有限公司 福建互联网展示科技馆设计 科技信息时代互联网发展 绵阳真晨互联网科技有限公司
0