MySQL的主从复制是什么?怎么实现MySQL服务器的主从同步?
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,MySQL的主从复制是什么?怎么实现MySQL服务器的主从同步?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。MySQL主从复制案例概述在企业网站中
千家信息网最后更新 2025年11月09日MySQL的主从复制是什么?怎么实现MySQL服务器的主从同步?
MySQL的主从复制是什么?怎么实现MySQL服务器的主从同步?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。
MySQL主从复制
案例概述
在企业网站中,后端MySQL数据库只有一台时,会有以下问题:
- 单点故障服务不可用
- 无法处理大量的并发数据请求
- 数据丢失

改造办法 - 增加MySQL数据库服务器,对数据进行备份,形成主备
- 确保主备MySQL数据库服务器数据是一样的
- 主服务器宕机了,备份服务器继续工作,数据有保障
MySQL的主从复制与读写分离是密切相关的
更高级的解决方案
通过主从复制的方式来同步数据,在通过读写分离提升数据库的并发能力
Amoeba 变形虫
案例实施
1.所有服务器关闭firewalld或者进行规则设置
2.建立时间同步环境 - 在主服务器上安装ntp时间同步服务器
- 使用yum安装ntp服务
- 修改ntp.conf,设置主服务器为时间同步源
- 在从服务器上进行时间同步
- 使用yum安装ntpdate并进行时间同步
在三台数据库服务器上安装mysql
- 使用yum安装ntpdate并进行时间同步
- 编译安装mysql
- 优化调整
- 初始化数据库
- 启动mysql服务并进行root用户密码设置
配置mysql master主服务器 - 修改/etc/my.cnf配置文件,增加服务器id,配置二进制日志选项
- 登录mysql服务,授权所有的从服务器复制二进制日志的权限
配置两台从服务器 - 修改/etc/my.cnf配置文件,增加服务器id,配置二进制日志选项
- 登录mysql,配置主从同步
实操
实验环境:准备5台centos 7系统的虚拟机
一台主服务器、两台从服务器、一台amoeba、一台客户机
实验拓扑图:
三台mysql服务器先都安装ntp、ntpdate
用于哦配置时间同步[root@master ~]# yum install ntp -y[root@slave1 ~]# yum install ntp ntpdate -y[root@slave2 ~]# yum install ntp ntpdate -y修改ntp配置文件
在主服务器下设置ntp配置文件,然后开启ntpd,关闭防火墙[root@master ~]# vim /etc/ntp.confserver 0.centos.pool.ntp.org iburstserver 1.centos.pool.ntp.org iburstserver 2.centos.pool.ntp.org iburstserver 3.centos.pool.ntp.org iburst'server 127.127.247.0 //设置本地是时钟源,这里的127.127指自己的192.168'fudge 127.127.247.0 stratum 8 //设置时间环的时间层级(时间环)为8[root@master ~]# systemctl start ntpd[root@master ~]# systemctl stop firewalld[root@master ~]# setenforce 0[root@master ~]# systemctl enable ntpdCreated symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.配置从服务器slave1,直接开启ntpd服务,进行时间同步,去匹配主服务器(ip地址)时间
[root@slave1 ~]# systemctl start ntpd[root@slave1 ~]# systemctl stop firewalld[root@slave1 ~]# setenforce 0[root@slave1 ~]# systemctl enable ntpdCreated symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.[root@slave1 ~]# /usr/sbin/ntpdate 192.168.247.1608 Jan 18:39:26 ntpdate[114393]: the NTP socket is in use, exitingslave1同步完成,接下来同步slave2
[root@slave2 ~]# systemctl start ntpd[root@slave2 ~]# systemctl enable ntpdCreated symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.[root@slave2 ~]# systemctl stop firewalld[root@slave2 ~]# setenforce 0[root@slave2 ~]# /usr/sbin/ntpdate 192.168.247.1608 Jan 18:40:38 ntpdate[82655]: the NTP socket is in use, exiting接下来就是安装MySQL和优化的过程
由于过程冗杂,详细过程请查看本人之前博客:
https://blog.51cto.com/14557905/2458283
安装mysql完毕,并且做完一系列优化
开始做主从同步
1.修改主服务器配置文件
[root@master mysql-5.6.26]# vim /etc/my.cnf//写在mysqld下log-bin=master-bin//上面是开启二进制文件log-slave-update=true//开启从服务器更新server-id = 11//服务器id为11(id不可以重复)重启服务
[root@master mysql-5.6.26]# service mysqld restartShutting down MySQL.. SUCCESS! Starting MySQL.. SUCCESS! 主服务器登陆mysql,给从服务器创建用户并且允许复制所有数据(ON . )
[root@master mysql-5.6.26]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.mysql> GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.247.%' IDENTIFIED BY 'abc123';//允许 复制,从服务器以myslave用户的身份,从192.168.247.0的网段,使用abc123的密码,去复制所有的数据库以及下面的表(*.*)Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;//刷新数据库Query OK, 0 rows affected (0.00 sec)mysql> show master status;//查看主服务器的位置点,从服务器的同步位置点就是下面的412+-------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+-------------------+----------+--------------+------------------+-------------------+| master-bin.000001 | 412 | | | |+-------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)配置从服务器slave1,服务器id不能一致,开启中继日志,索引中继日志
[root@slave1 mysql-5.6.26]# vim /etc/my.cnf[mysqld]//写在mysqld下log-bin=mysql-binserver-id = 22//另一台slave2 id 为23relay-log=relay-log-binrelay-log-index=slave-relay-bin.index[root@slave1 mysql-5.6.26]# service mysqld restartShutting down MySQL.. SUCCESS! Starting MySQL.. SUCCESS! 从服务器登陆mysql,添加主服务器(ip地址,使用主服务器的账户mysalve,输入主服务器账户的密码,确定同步的二进制文件,同步的位置点)
[root@slave1 mysql-5.6.26]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.mysql> change master to master_host='192.168.247.160',master_user='myslave',master_password='abc123',master_log_file='master-bin.000001',master_log_pos=412;//添加主服务器Query OK, 0 rows affected, 2 warnings (0.01 sec)开启从服务器功能
mysql> start slave;Query OK, 0 rows affected (0.01 sec)查看从服务器状态
mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.247.160 Master_User: myslave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.000001 Read_Master_Log_Pos: 412 Relay_Log_File: relay-log-bin.000002 Relay_Log_Pos: 284 Relay_Master_Log_File: master-bin.000001' Slave_IO_Running: Yes //显示slave功能已开启' Slave_SQL_Running: Yes //显示slave功能已开启 Exec_Master_Log_Pos: 412 Relay_Log_Space: 455 Master_Server_Id: 11 Master_UUID: e9a82741-3223-11ea-af25-000c29524d89 Master_Info_File: /home/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Master_Retry_Count: 864001 row in set (0.00 sec)同步配置完成,接下来测试
主服务器,创建一个school数据库
mysql> create database school;Query OK, 1 row affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || school || test |+--------------------+5 rows in set (0.00 sec)从服务器直接查看
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || school || test |+--------------------+5 rows in set (0.00 sec)以上就是MySQL的主从复制介绍以及MySQL服务器实现主从同步的方法,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!
服务
服务器
同步
数据
配置
主从
数据库
文件
时间
二进制
日志
问题
接下来
位置
功能
密码
就是
用户
过程
进行时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
二本大学软件开发专业
无锡江苏大容量服务器供应商家
网络安全审查办法运营主体是指
外贸服务器的优势
如何做网络安全论文
高端水软件开发
服务器2012系统安全吗
河北前端软件开发价钱
华宇软件开发什么软件
果洛州林草系统网络安全
网络技术计算机三级含金量
r410服务器设置启动盘
网络技术交换方式分类
上海机械网络技术公司
保存数据库控制文件位置
小孩与网络安全
中国数据库技术第一人
三级网络技术需要考二级吗
电脑怎么运行远程服务器
c语言做上位机软件开发
软件开发专业总结
北京理工大学网络安全宣传周
阿里云服务器 云数据库
性 质谱 晶体结构数据库
网络安全里程碑会议
学乐网络技术
画出网络安全模型及工作原理
三级网络技术第一题
access数据库的查阅
崇明区营销软件开发要多少钱