MySQL的主从复制是什么?怎么实现MySQL服务器的主从同步?
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,MySQL的主从复制是什么?怎么实现MySQL服务器的主从同步?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。MySQL主从复制案例概述在企业网站中
千家信息网最后更新 2025年02月02日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, exiting
slave1同步完成,接下来同步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安全错误
数据库的锁怎样保障安全
bpm 数据库
管家婆软件如何连接数据库
适合大学生的软件开发
广州小链互联网科技有限公司
卷积神经网络技术是什么
豌豆荚下载软件开发
管家婆软件怎么升级数据库
gtd 恐怖主义数据库
怎么做网络安全防御
网络安全知识幼儿园
南昌服务器维修
数据库的备份与还原
mvc 下拉框 数据库
部落战争服务器不能连接
IBM服务器P系列
比尔网络技术学院教程
本地链接宝塔面板数据库
电站网络安全装置报警分析
数据库系统概论电子版pdf
国家网络安全改革路
tcl软件开发的年终奖
网络安全微小说
选择网络安全专业的原因
梦幻西游周二怎么抢服务器
重庆天象网络技术
武汉万赢网络技术有限公司
地方网络安全怎么管理
网络安全des计算题
数据库磁盘路径切换
数据库系统概论电子版pdf