浅谈Mysql5.7中怎么搭建主从复制?


mysql5.7中怎么搭建主从复制?下面本篇文章带大家了解一下mysql5.7中主从复制搭建步骤,希望对大家有所帮助!

浅谈Mysql5.7中怎么搭建主从复制?

一、概述

主从复制可以实现对数据库备份和读写分离:

为了避免服务的不可用以及保障数据的安全可靠性,我们至少需要部署两台或两台以上服务器来存储数据库数据,也就是我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障了,其他服务器依然可以继续提供服务. MySQL提供了主从复制功能以提高服务的可用性与数据的安全可靠性.主从复制是指服务器分为主服务器和从服务器,主服务器负责读和写,从服务器只负责读,主从复制也叫 master/sl*e,master是主,sl*e是从,但是并没有强制,也就是说从也可以写,主也可以读,只不过一般我们不这么做。【相关推荐:mysql视频教程】

二、主从复制架构

一主多从架构:
在这里插入图片描述
多主多从架构:
在这里插入图片描述
主从复制原理:

  1. 当 master 主服务器上的数据发生改变时,则将其改变写入二进制事件日志文件中
  2. salve 从服务器会在一定时间间隔内对 master 主服务器上的二进制日志进行探测,探测其是否发生过改变,如果探测到 master 主服务器的二进制事件日志发生了改变,则开始一个 I/O Thread 请求 master 二进制事件日志
  3. 同时 master 主服务器为每个 I/O Thread 启动一个dump Thread,用于向其发送二进制事件日志
  4. sl*e 从服务器将接收到的二进制事件日志保存至自己本地的中继日志文件中
  5. salve 从服务器将启动 SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致;
  6. 最后 I/O Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒

三、一主多从搭建

搭建环境:
1. Linux 版本 CentOS release 6.9 (Final)
2. mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz下载地址

1.解压 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

#/usr/local下解压
tar xzvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#重命名文件
mv mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mysql

2.创建多实例数据目录

cd /usr/local/mysql
mkdir data
cd data
#主
mkdir 3306
#从
mkdir 3307

在这里插入图片描述
3.数据库初始化

#mysql 安装bin目录下执行
#initialize-insecure 表示不生成MySQL数据库root用户的随机密码,即root密码为空

#初始化3306
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306 --user=mysql
#初始化3307
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307 --user=mysql

若出现错误执行
yum install libaio-devel.x86_64
yum -y install numactl在这里插入图片描述
4.创建各个数据库的配置文件my.cnf

注意:
1.建议在linux下创建文件防止windows 与 linux 编码不一致
2.不同的实例下配置要修改端口号
3.将修改好的my.cnf分别放至3306、3307文件夹内

[client]
port        = 3306
socket      = /usr/local/mysql/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port    = 3306
socket  = /usr/local/mysql/data/3306/mysql.sock
datadir = /usr/local/mysql/data/3306
log-error = /usr/local/mysql/data/3306/error.log
pid-file = /usr/local/mysql/data/3306/mysql.pid

character-set-server=utf8
lower_case_table_names=1
autocommit = 1

log-bin=mysql-bin
server-id=3306

5.多实例启动
切换到/usr/local/mysql-5.7.24/bin目录下,使用 msyqld_safe 命令指定配置文件并启动MySQL服务:

#其中 --defaults-file 是指定配置文件,& 符合表示后台启动
./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &

6.数据库初始化配置
分别在各个实例内进行配置 如3306:

#客户端连接
./mysql -uroot -p -P3306 -h127.0.0.1
#修改Mysql密码
alter user 'root'@'localhost' identified by 'root';
#授权远程访问(这样远程客户端才能访问)
grant all privileges on *.* to root@'%' identified by 'root';
#刷新配置
flush privileges;

客户端连接测试
在这里插入图片描述
7.数据库唯一id配置

1.确定各个实例正常启动无误后进行主从配置
2.关闭实例分别在各个实例的my.cnf文件加入以下配置

#/usr/local/mysql/bin 关闭实例
./mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown
./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

#新加的配置
log-bin=mysql-bin   	#表示启用二进制日志
server-id=3307 		#表示server编号,编号要唯一 建议和端口保持一致

加入完毕后启动各个实例

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io
./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &

./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &

7.主机设置
1.在主服务器上创建复制数据的账号并授权

#在/usr/local/mysql/bin目录下执行 
 ./mysql -uroot -p -P3306 -h127.0.0.1
 grant replication sl*e on *.* to 'copy'@'%' identified by 'root';

2.查看主服务器状态

# mysql主服务器默认初始值:
#			File:mysql-bin.000001
#			Position:154

show master status;

3.如果主服务状态不是初始状态,需要重置状态

reset master;

7.从机设置
1.需要登录到 3306|3307|3308的从机客户端

#在/usr/local/mysql/bin目录下执行  多台从机‘|’分隔
./mysql -uroot -p -P3308|3309|3310 -h127.0.0.1

2.查看从机状态

#初始状态:Empty set 
show sl*e status;

3.若不是初始状态,重置一下

stop sl*e; 	#停止复制,相当于终止从服务器上的IO和SQL线程
reset sl*e;

4.设置从机设置主机配置

change master to 
master_host='主机ip',master_user='copy',
master_port=主机端口,master_password='连接主机密码',
master_log_file='mysql-bin.000001',master_log_pos=154;

5.执行 开始复制命令

start sl*e;

6.查看从机状态

show sl*e status \G;

在这里插入图片描述
7.测试主从复制

在主数据库中进行创建表,从库同步就算搭建成功了!
在这里插入图片描述
若你在从库进行写操作,则从服务器不再同步主库数据,在从库中执行此命令即可解决!

stop sl*e;
set global sql_sl*e_skip_counter =1;
start sl*e;
show sl*e status\G;

若主从复制速度较慢的话,执行此命令

 sl*e-parallel-type=LOGICAL_CLOCK
 sl*e-parallel-workers=16
 master_info_repository=TABLE
 relay_log_info_repository=TABLE
 relay_log_recovery=ON

更多编程相关知识,请访问:编程入门!!

以上就是浅谈Mysql5.7中怎么搭建主从复制?的详细内容,更多请关注其它相关文章!


# 主从复制  # 框架嵌套seo做法  # 最火珠宝关键词排名榜  # 巩义网站建设与设计公司  # 关键词优化排名蔚新hfqjwl做词  # 陕西seo技巧有哪些  # 多台  # 两台  # 如何在  # 目录下  # 配置文件  # 浅谈  # 客户端  # 器上  # 插入图片  # 在这里  # Mysql5.7  # fb营销推广哪家比较好  # 广西网站推广优化  # 鞍山哪里有网站建设服务  # 溧水办公装饰网站建设  # 表格模板网站建设游戏app 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 顺丰速运官网查询入口 顺丰物流查询官网入口链接  网页版网易云音乐入口_网易云音乐在线官网登录  鸣潮历史学家灯塔位置一览  《浙里办》电子发票开具方法  Python中对象引用与链表属性赋值的机制解析  抖音猜你想搜能说明对方搜过吗  申通快递物流信息查询 申通快递包裹状态追踪  微博网页版访问入口 微博网页版网页端使用指南  苹果手机手电筒无法开启  《图怪兽》退出登录方法  Animex动漫社社登录官网 Animex动漫社资源社入口直达  PHP安全加载非公开目录图片与动态内容类型处理指南  小红书如何引流到私信?引流到私信有用吗?  《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略  C++ cast类型转换总结_C++ reinterpret_cast与const_cast的使用  快手极速版在线体验区 快手极速版网页体验入口  追剧达人如何发弹幕  外媒评《燕云十六声》DIY载具新玩法:很像《塞尔达传说王国之泪》!  解决Pandas DataFrame高度碎片化警告:高效创建多列的策略  百度浏览器无法安装扩展程序_百度浏览器插件安装失败原因解析  阿里云共享相册入口在哪  抖音小程序怎么开通?小程序开通条件是什么?  CSS动画如何实现图标旋转并放大_transform rotate scale @keyframes实现  mysql数据库索引类型有哪些_mysql索引类型解析  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  Python模块化编程:避免循环导入与共享函数的最佳实践  Go Template中优雅处理循环最后一项:自定义函数实践  12306APP选座怎么选充电位置_12306APP带充电插座座位选择方法与技巧  在Dash应用中自定义HTML标题和网站图标  百度输入法在AutoCAD中无法输入中文怎么办_百度输入法CAD输入异常解决方法  《咸鱼之王》新版孙坚技能解析  qq音乐官方网站入口_qq音乐在线听歌网页版链接  如何用mysql开发用户注册登录功能_mysql用户注册登录数据库设计  QQ邮箱手机版网页版 QQ邮箱登录入口地址  126手机126邮箱登录_126邮箱手机登录入口官网  折叠屏手机充不进电是什么问题? 特殊结构带来的维修难点  win11怎么启用或禁用休眠 Win11 powercfg命令管理休眠文件【技巧】  《全民k歌》网页版最新登录入口一览  Sublime怎么格式化HTML代码_Sublime前端代码美化插件使用指南  CDR如何复制交互式填充色  苹果官网国补入口在哪  《洛克王国:世界》国家队搭配攻略  sublime如何自定义文件类型图标_AFileIcon插件的主题切换与个性化配置  Retrofit根路径POST请求:@POST("/") 的应用与解析  猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程  iSpring三分屏制作教程  VS Code中的Tailwind CSS IntelliSense插件使用技巧  多闪电脑版下载_多闪PC端模拟器使用  顺丰快递在线查询系统 顺丰快递官方查单入口  第五人格PC版怎么避免被封号_第五人格PC版防封号注意事项 

 2021-09-06

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.