
Day163.主从复制 -MySql高级
发布日期:2021-05-07 01:39:54
浏览次数:19
分类:精选文章
本文共 3461 字,大约阅读时间需要 11 分钟。
第 5 章 主从复制
1、复制的基本原理
复制的基本原理
slave会从master读取binlog来进行数据同步,主从复制的三步骤
- master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件(binary log events)
- slave将master的binary log events拷贝到它的中继日志(relay log)
- slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行化的
2、复制的基本原则
- 每个slave只有一个master
- 每个slave只能有一个唯一的服务器ID
- 每个master可以有多个salve
3、复制最大问题
因为发生多次 IO, 存在延时问题
4、一主一从常见配置
前提:mysql 版本一致,主从机在同一网段下
ping 测试
ping
一下主机和从机之间的网络连接 - Linux 中 ping Windows
[root@achang桌面]# ping 17.110.217.181PING 10.206.207.131 (10.206.207.131) 56(84) bytes of data.64 bytes from 10.206.207.131: icmp_seq=1 ttl=128 time=1.27 ms64 bytes from 10.206.207.131: icmp_seq=2 ttl=128 time=0.421 ms64 bytes from 10.206.207.131: icmp_seq=3 ttl=128 time=1.12 ms64 bytes from 10.206.207.131: icmp_seq=4 ttl=128 time=0.515 ms^C--- 10.206.207.131 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3719msrtt min/avg/max/mdev = 0.421/0.835/1.279/0.373 ms[root@achang桌面]#
- Windows 中 ping Linux
C:\Users\achang>ping 192.168.152.129正在 Ping 192.168.152.129 具有 32 字节的数据:来自 192.168.152.129 的回复: 字节=32 时间<1ms TTL=64来自 192.168.152.129 的回复: 字节=32 时间<1ms TTL=64来自 192.168.152.129 的回复: 字节=32 时间=1ms TTL=64来自 192.168.152.129 的回复: 字节=32 时间<1ms TTL=64192.168.152.129 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 1ms,平均 = 0ms
主机修改 my.ini 配置文件(Windows)
主从都配置都在 [mysqld] 节点下,都是小写,以下是老师的配置文件
以下两条为必须配置
- 配置主机 id
server-id=1
- 启用二进制日志
log-bin=C:/Program Files (x86)/MySQL/MySQL Server 5.5/log-bin/mysqlbin
以下为非必须配置
- 启动错误日志
log-err=C:/Program Files (x86)/MySQL/MySQL Server 5.5/log-bin/mysqlerr
- 根目录
basedir="C:/Program Files (x86)/MySQL/MySQL Server 5.5/"
- 临时目录
tmpdir="C:/Program Files (x86)/MySQL/MySQL Server 5.5/"
- 数据目录
datadir="C:/Program Files (x86)/MySQL/MySQL Server 5.5/Data/"
- 主机,读写都可以
read-only=0
- 设置不要复制的数据库
binlog-ignore-db=mysql
- 设置需要复制的数据
binlog-do-db=需要复制的主数据库名字
从机修改 my.cnf 配置文件(Linux)
- 【必须】从服务器唯一ID
server-id=2
- 【可选】启用二进制文件
修改配置文件后的准备工作
因修改过配置文件,主机+从机都重启 mysql 服务
- Windows
net stop mysqlnet start mysql
- Linux
service mysqld restart
主机从机都关闭防火墙
- Windows 手动关闭防火墙
- 关闭虚拟机 linux 防火墙
service iptables stop
在 Windows 主机上简历账户并授权 slave
- 创建用户, 并授权
GRANT REPLICATION SLAVE ON *.* TO '备份账号'@'从机器数据库 IP' IDENTIFIED BY '账号密码';GRANT REPLICATION SLAVE ON *.* TO 'achang'@'117.110.217.181' IDENTIFIED BY '123456';
- 刷新权限信息
flush privileges;mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
- 查询 master 的状态,将 File 和 Position 记录下来,在启动 Slave 时需要用到这两个参数
从mysql-bin.000001
文件的339
行开始复制
show master status;mysql> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 | 986 | | mysql |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)
在 Linux 从机上配置需要复制的主机
- 从机进行认证
CHANGE MASTER TO MASTER_HOST='主机 IP',MASTER_USER='创建用户名',MASTER_PASSWORD='创建的密码',MASTER_LOG_FILE='File 名字',MASTER_LOG_POS=Position数字;CHANGE MASTER TO MASTER_HOST='117.110.217.181',MASTER_USER='achang',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=986;
- 启动从服务器复制功能
start slave;
- 查看从机复制功能是否启动成功:Slave_SQL_Running:Yes 和 Slave_IO_Running:Yes 说明从机连接主机成功
show slave status\G;
- 如何停止从服务复制功能
stop slave;
备注
- 从机连不上啊。。。一直显示 Slave_IO_Running: Connecting
- 我 Windows 中的 mysql 版本为 5.5,Linux 中的 mysql 版本为 5.6
-
保证mysql主从版本一致!
-
每次从机
start slave
连接都会改变,先在start slave之前配置好CHANGE MASTER的信息
感谢尚硅谷,感谢阳哥!!!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月09日 08时24分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python 简明教程 --- 20,Python 类中的属性与方法
2021-05-09
KNN 算法-理论篇-如何给电影进行分类
2021-05-09
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2021-05-09
CODING 敏捷实战系列课第三讲:可视化业务分析
2021-05-09
工作动态尽在掌握 - 使用 CODING 度量团队效能
2021-05-09
CODING DevOps 深度解析系列第二课报名倒计时!
2021-05-09
数据结构第八节(图(下))
2021-05-09
基于Mustache实现sql拼接
2021-05-09
POJ 2260 Error Correction 模拟 贪心 简单题
2021-05-09
gRPC在 ASP.NET Core 中应用学习(一)
2021-05-09
@SuppressWarnings 用法
2021-05-09
看完你就明白的锁系列之锁的状态
2021-05-09
看完这篇操作系统,和面试官扯皮就没问题了
2021-05-09
我的价值观
2021-05-09
一文详解 Java 并发模型
2021-05-09
值类型与引用类型(中)
2021-05-09
MSSQL 2005 数据库变成可疑状态
2021-05-09
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2021-05-09
秋色园引发CPU百分百命案的事件分析与总结
2021-05-09
安装jdk并配置环境变量
2021-05-09