linux配置usb主从_技术 | 手把手教你搭建MySQL主从架构
黑马程序员
微信号:heiniu526
传智播客旗下互联网资讯,学习资源免费分享平台
1
什么是MySQL的复制
MySQL的主从复制可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave)上,进而可以保证数据有多份冗余。
默认情况下,属于异步复制,所以无需维持长连接。
2
MySQL复制的原理
· slave端的IO线程发送请求给master端的binlog dump线程
· master端binlog dump线程获取二进制日志信息(文件名和位置信息)发送给slave端的IO线程
· salve端IO线程获取到的内容依次写到slave端relay log里,并把master端的bin-log文件名和位置记录到master.info里
· salve端的SQL线程,检测到relay log中内容更新,就会解析relay log里更新的内容,并执行这些操作,从而达到和master数据一致
3
MySQL复制搭建
⒈环境说明
当前环境中只有一台MySQL数据库服务器,上面已有相关业务数据。现需要在此基础上构建MySQL的主从复制架构。
· 系统环境说明
IP |
主机名 |
角色 |
系统版本 |
MySQL版本 |
10.1.1.10 |
master.MissHou.cc |
主(master) |
Centos 7.5 |
MySQL-5.6.35 |
10.1.1.20 |
slave.MissHou.cc |
从(slave) |
Centos 7.5 |
MySQL-5.6.35 |
· 数据库安装环境说明
角色 |
安装目录 |
数据目录 |
端口 |
Master |
/usr/local/mysql/ |
/usr/local/mysql/data |
3307 |
Slave |
/usr/local/mysql/ |
/usr/local/mysql/data |
3307 |
⒉从服务器安装MySQL数据库
[root@slave ~]# id mysql
id: mysql: no such user
[root@slave ~]# useradd -r -s /sbin/nologin mysql
[root@slave ~]# mkdir /usr/local/mysql
[root@slave ~]# cd /usr/src/
[root@slave src]# ls
debug kernels mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@slave src]# tar xf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@slave src]# ls
debug kernels mysql-5.6.35-linux-glibc2.5-x86_64 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@slave src]# cp -a mysql-5.6.35-linux-glibc2.5-x86_64/* /usr/local/mysql/
[root@slave src]# chown -R mysql. /usr/local/mysql/
[root@slave src]# cp support-files/mysql.server /etc/init.d/mysql
注意:
暂时不需要初始化数据库文件,只是安装好了和master相同版本的mysql数据库软件;后面向master来同步所有数据。
⒊修改主和从的配置文件
注意:
· server-id必须不能一致;
· master需要开启二进制日志
· slave需要开启中继日志
[root@master ~]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3307
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/db01_3307.err
character_set_server=utf8mb4
log-bin=/usr/local/mysql/data/binlog
server-id = 10
[root@slave ~]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/db02_3307.err
character_set_server=utf8mb4
server-id=20
relay-log=/usr/local/mysql/data/relaylog
⒋主从两边初始数据保持一致
· 主服务器停止MySQL服务
[root@master ~]# mysqladmin shutdown -p123
· 主服务器删除auto.cnf文件
[root@master ~]# cd /usr/local/mysql/data/
[root@master data]# rm -f auto.cnf
说明:auto.cnf文件里保存的是每个数据库实例的UUID信息,代表数据库的唯一标识
· Master上数据同步到slave
[root@master ~]# rsync -av /usr/local/mysql/data/ 10.1.1.20:/usr/local/mysql/data
· 启动Master和Slave数据库
[root@master ~]# service mysql start
[root@slave ~]# service mysql start
⒌主服务器创建复制用户
mysql> grant replication slave on *.* to 'slave'@'10.1.1.%' identified by '123';
mysql> flush privileges;
先加锁,防止两边数据不一致
mysql> flush tables with read lock;
查看当前数据库的二进制日志写到什么位置(只有打开二进制日志,这句命令才有结果)
mysql> show master status;
⒍从服务器配置同步信息
mysql> change master to master_host='10.1.1.10',master_user='slave',master_password='123',master_port=3307,master_log_file='mybinlog.000002',master_log_pos=405;
⒎从服务器启动复制线程
mysql> start slave;
mysql> show slave status\G
.....
Slave_IO_Running: Yes 代表成功连接到master并且下载日志
Slave_SQL_Running: Yes 代表成功执行日志中的SQL语句
⒏主服务器解锁
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
4
主从测试验证
⒈主服务器上插入数据
mysql> select * from db02.t1;
+------+-------+
| id | name |
+------+-------+
| 1 | mona |
| 2 | harry |
| 3 | jack |
+------+-------+
3 rows in set (0.00 sec)
mysql> insert into t1 values(4,'tom');
Query OK, 1 row affected (0.00 sec)
mysql> select * from db02.t1;
+------+-------+
| id | name |
+------+-------+
| 1 | mona |
| 2 | harry |
| 3 | jack |
| 4 | tom |
+------+-------+
⒉从服务器查看数据
mysql> select * from db02.t1;
+------+-------+
| id | name |
+------+-------+
| 1 | mona |
| 2 | harry |
| 3 | jack |
| 4 | tom |
+------+-------+
5
MySQL主从复制总结
· 主从复制必须保证两台数据库实例的server-id不一致
· 主服务器必须开启二进制日志;从服务器必须开启中继日志
· 主从复制搭建必须保证初始数据一致
· 主服务器必须要给从服务器创建一个复制用户,并授予复制权限
· Master—>Slave架构,主写会同步到从;而从写不会同步到主
热文推荐
63道java面试真题击破BAT招聘套路!跳槽季助你一臂之力
互联网从业人才报告,非技术岗位月薪也可达23000……
月薪14Kweb大神独家发布:学习路线+首发资源!
文章好看就点这里
▼点击 加程序员交流群
linux配置usb主从_技术 | 手把手教你搭建MySQL主从架构相关推荐
- mysql主从架构搭建_技术 | 手把手教你搭建MySQL主从架构
1 什么是MySQL的复制 MySQL的主从复制可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave)上,进而可以保证数据有多份冗余. 默认情况下,属于异步复制,所 ...
- 手把手教你搭建SpringCloud项目(十)集成Hystrix之服务降级
Spring Cloud全集文章目录: 零.什么是微服务?一看就会系列! 一.手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二.手把手教你搭建SpringCloud项目(二)生产 ...
- 手把手教你搭建SpringCloud项目(十六)集成Stream消息驱动
Spring Cloud全集文章目录: 零.什么是微服务?一看就会系列! 一.手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二.手把手教你搭建SpringCloud项目(二)生产 ...
- 手把手教你搭建SpringCloud项目(九)集成OpenFeign服务接口调用
Spring Cloud全集文章目录: 零.什么是微服务?一看就会系列! 一.手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二.手把手教你搭建SpringCloud项目(二)生产 ...
- 手机端创新体验——手把手教你搭建VRAR架构
声明:本文阿里巴巴技术论坛整理文章,首发于CSDN,未经许可,禁止任何形式的转载. 作者:袁岳峰,阿里移动平台虚拟&互动实验室负责人,GM Lab技术负责人. 责编:钱曙光,关注架构和算法领域 ...
- 手把手教你搭建Linux开发环境(VMware+Ubuntu)(二)——安装VMwareTools并设置共享文件夹
刚刚装好了Ubuntu,安装VMware Tools会让我们有更好的体验,那么为什么要安装VMware Tools?该如何安装呢?本篇博客将手把手教你安装VMware Tools,并设置共享文件夹. ...
- 手把手教你搭建属于自己的技术博客(小白教程)
手把手教你搭建属于自己的技术博客 先放上我自己搭建的博客地址 https://sourl.cn/Tbk7yt 这里我使用的是 Hexo 框架 以及 Github pages 进行的搭建 文章目录 手把 ...
- 云服务器架设网站教程_手把手教你搭建腾讯云服务器入门(图文教程)
本文由博主 威威喵 原创 博客主页:https://blog.csdn.net/smile_running 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特 ...
- 手把手教你搭建Linux开发环境(VMware+Ubuntu)(一)——安装VMware虚拟机和Ubuntu
前言 近期好多小伙伴都开始学习Linux内核了,那么如何搭建一个Linux运行环境,变成Linux内核初学者的拦路虎,今天我就一步步详细解说一下,如何使用虚拟机VMware安装Ubuntu,跟我一起开 ...
最新文章
- 英伟达小姐姐的Python隐藏技巧合集,推特2400赞,代码可以直接跑
- 独家 | 将人们困于贫穷之中的隐藏算法战争即将到来
- oracle函数,oracle编写函数
- 安卓高手之路之图形系统(6)ListView继续
- [Ubuntu] 如何在Ubuntu11.04将PHP5.3降级到PHP5.2
- java接口开发_如果你想学好Java,这些你需要了解
- 微课|玩转Python轻松过二级(1.5节):安装扩展库
- mysql文件_mysql 的各种文件详细说明
- ubuntu切换用户root时认证失败
- java矩阵相乘泛型_21.8 实例学习:泛型矩阵类
- 计算机等级考试--二级Java的知识点大全
- 顶尖互联网公司 类名定义/数据库字段 - 英文名词解释
- linux md5校验脚本,Linux md5sum命令的使用方法
- 4.6 linux文件系统-虚拟文件系统VFS
- 红米NoteX和红米NoteXpro的区别
- HDU, 3579 Hello Kiki
- 软件自锁c语言,一种C式自锁快速接头的制作方法
- android 权威编程指南 笔记 2018-09-01
- android魅族升级,Android8.0快来了,魅族手机终于要升级 7.0了!
- Ae 表达式语言引用:Camera Light Effect
热门文章
- php 动态引用dll文件路径,win平台环境变量与dll动态链接库搜索路径小结
- 表单多条相同name数据的获取
- 【Python 10】汇率兑换3.0(while循环)
- 3529: [Sdoi2014]数表 - BZOJ
- 一个优秀的测试如何在敏捷开发中体现自己的价值?
- 异常为当IDENTITY_INSERT设置为OFF时 的解决
- Delphi 2009 的反射单元(ObjAuto):
- 【数据结构】分治代码模板
- vs 生成com组件 其他电脑_VS也可以这样进行快捷安装
- FFmpeg之视频/图片镜像旋转(十三)