MySQL Replication(数据同步技术)

A 到 B 完成主从复制,意思是数据同步技术 从读取主的二进制日志文件,按照日志中记录对从库进行同样的操作

复制类型:

异步复制 :默认的复制是异步,主执行完后立刻将结果返给客户端,不关心从是否接收或处理

全同步复制:当主执行完一个事务,从库都执行完该事务才返回给客户端。

半同步复制:介于异步与全同步之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到日志中返回客户端(最好在低延时的网络中使用)

一般使用异步复制的方式

双机部署环境:

主节点 192.168.80.24
从节点 192.168.80.26

----------------

首先要先安装mysql数据库

1,关闭防火墙和安全机制

systemctl  stop firewalld
setenforce 0
iptables -F

2,配置ntp时间同步服务器并启动

yum -y install  ntp
1,主节点做
vim /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 8
systemctl start ntpd
2,从节点
ntpdate 主节点IP

(第二种方法,使用互联网上时间同步服务器(每个节点都使用,方便便捷)
crontab -e
* */5 * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1       //每隔5小时同步一下时间

3,安装mysql安装包

安装 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

1,将系统中只带的mariadb删除
rpm -q mysql mysql-server mariadb mariadb-server
rpm -e .......
2,上传mysql二进制包解压
tar xf mysql-5.7.24-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/        
cd /usr/local        
mv mysql-5.7.24-linux-glibc2.17-x86_64-minimal/ mysql                            
3,创建mysql用户并赋予权限    
useradd -M -s /sbin/nologin mysql                                                
chown -R mysql:mysql /usr/local/mysql/
4,初始化数据库
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

5,修改配置文件
cat /etc/my.cnf
[mysqld]
port=3306
datadir=/usr/local/mysql/data
max_connections = 100
default-storage-engine = InnoDB
socket=/tmp/mysql.sock
character-set-server=utf8
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

6,做启动文件
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
ln -s /usr/local/mysql/bin/* /usr/local/bin/
systemctl start mysqld            

7,修改密码
####mysqladmin -uroot -p'复制的初始密码' password'123456'      
mysql>alter user user() identified by "123456" ;
#登陆:
mysql -uroot -p'123456'

开始配置主从

4,配置主mysql并重启

vim /etc/my.cnf
server-id=1
log-bin=mysql-binlog
log-slave-updates=true

systemctl restart mysqld

5,主创建replication用户

进入数据库mysql 
>grant replication slave on *.* to 'myslave'@'192.168.80.%' identified by '123456';
>flush privileges;
> show master status;

replication slave :用于复制从属服务器(从主服务器中读取二进制日志事件权限)
测试是否成功
从 连接一下 主。如果成功登陆则没有问题
mysql -u myslave -p123456 -h 192.168.80.24

补充:生产环境下,主运行过一段时间,已经存在数据,为了保证数据一致性,需要先备份。两种方式,直接备份数据文件或者mysqldump工具备份

6,从配置并重启

vim /etc/my.cnf
server-id = 2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index

补充:如若有多台从,每一台都需要配置,并只修改server-id编号即可

systemctl restart mysqld

7,从进入数据库中配置

进入从数据库
>stop slave;                       //先停掉从的角色
>change master to master_host='192.168.200.115',master_user='myslave',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=477;
                                  //配置新的从角色
>start slave;                       //启动角色
>show slave status\G                   //查看角色信息

补充:清除角色 >reset slave;

8.测试:在主中创建一个库,看从中是否复制成功

进入主数据库
>create database sampdb;
>use sampdb;
>create table new(name char(20),phone char(20));
进入从数据库
>show databases;

9.补充注意:主从复制,只是一种数据同步技术,不是架构;

如果是问数据库架构是如何,应该再加上HA(高可用),如下列举两个架构

  • MySQL主主复制+Keepalived高可用
  • MySQL+DRBD+Heartbeat

MySQL Replication(数据同步技术)的更多相关文章

  1. 两台Mysql数据库数据同步实现

    两台Mysql数据库数据同步实现 做开发的时候要做Mysql的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,Mysql的版本是4.1. ...

  2. Goldengate完成Mysql到Mysql的数据同步

    文档参考地址:http://blog.csdn.net/u010587433/article/details/49305019 需求: 使用Goldengate完成Mysql到Mysql的数据同步,源 ...

  3. Mysql Replication 主从同步

    简介: Mysql 的主从同步功能,这种解决方案是企业很常见的一种.常用于备份数据库,当客户端操作主库时,主库会产生binlog日志文件, 从库通过复制主库的binlog日志文件,然后解析成相应的 S ...

  4. 怎么通过 Mysql 实现数据同步呢?

    怎么使 mysql 数据同步先假设有主机 A 和 B ( linux 系统),主机 A 的 IP 分别是 1.2.3.4 (当然,也可以是动态的),主机 B 的 IP 是 5.6.7.8 .两个主机都 ...

  5. MySQL主从数据同步延时分析

    一.MySQL数据库主从同步延迟                                                              要了解MySQL数据库主从同步延迟原理,我们 ...

  6. 减少mysql主从数据同步延迟

    网上给出的解决办法: 基于局域网的master/slave机制在通常情况下已经可以满足'实时'备份的要求了.如果延迟比较大,就先确认以下几个因素:1. 网络延迟2. master负载3. slave负 ...

  7. redis和mySql的数据同步的解析

    1.同步MySQL数据到Redis (1) 在redis数据库设置缓存时间,当该条数据缓存时间过期之后自动释放,去数据库进行重新查询,但这样的话,我们放在缓存中的数据对数据的一致性要求不是很高才能放入 ...

  8. k8s部署canal-1.1.6版本实现MySQL数据库数据同步

    1.版本说明 软件&镜像 版本&镜像信息 说明 Kubernetes v1.23.7 k8s服务器 Kuboard v3.5.2.0 k8s连接管理工具 Canal v1.1.6 数据 ...

  9. 使用Canal作为mysql的数据同步工具

    一.Canal介绍 1.应用场景 在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与 ...

  10. 使用tungsten将mysql的数据同步到hadoop

    背景 线上有很多的数据库在运行,后台需要一个分析用户行为的数据仓库.目前比较流行的是mysql和hadoop平台. 现在的问题是,如何将线上的mysql数据实时的同步到hadoop中,以供分析.这篇文 ...

随机推荐

  1. Kali Win-KeX Win

    内容: 概述 用法 开始 启动根会话 会话管理 声音支持 多屏支持 停止 概述 窗口模式下的 Win-KeX 将在单独的窗口中运行 Kali Linux 桌面会话. 窗口模式有助于在视觉上将 Wind ...

  2. 巧用视觉障眼法,还原 3D 文字特效

    最近群里有这样一个有意思的问题,大家在讨论,使用 CSS 3D 能否实现如下所示的效果: 这里的核心难点在于,如何利用 CSS 实现一个立体的数字?CSS 能做到吗? 不是特别好实现,但是,如果仅仅只 ...

  3. [深度学习] CNN的基础结构与核心思想

    1. 概述 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的, 另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的).它的非全连接和 ...

  4. [硬核] Bootstrap Blazor Table 综合演示例子

    知识点: 1.导入导出 2.分页功能 3.增删改查 4.批量删除 5.批量编辑(审核) 6.列排序与列搜索 7.顶部搜索实现所有列搜索 8.高级搜索实现多条件搜索 9.顶部与刷新与视图列 10.实现文 ...

  5. (19)go-micro微服务filebeat收集日志

    目录 一 Filebeat介绍 二 FileBeat基本组成 三 FileBeat工作原理 四 Filebeat如何记录文件状态: 五 Filebeat如何保证事件至少被输出一次 六 安装Filebe ...

  6. 使用pyenv对python进行版本控制—很好用

    相对于python自带的virtualenv来说,pyenv的使用要便利些,更不用说自带的插件python-virtualenv,创建虚拟环境就更为方便了,其实最让我心水的功能是创建的虚拟环境,进入设 ...

  7. C#如何提高代码质量(一)

    代码部分 1.正确操作字符串 尽量少装箱 String str1 = "str2"+9.ToString(); 避免分配额外的内存空间 StringBuilder 2.使用默认转型 ...

  8. 【分析笔记】全志平台 TWI 上拉电压异常的问题

    记录说明 原本这么简单的芯片,没有必要做记录,后来发现其中有一颗单独挂在 TWI2 无法通信,而主要原因是最容易忽视的电源域的问题,因此记录一下这件事情. 芯片介绍 MCP3021 是一颗 10BIT ...

  9. 学习ASP.NET Core Blazor编程系列二十三——登录(3)

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  10. 快速实现一个简单阉割版的HashMap

    简单实现一个底层数据结构为数组 + 链表的HashMap,不考虑链表长度超过8个时变为红黑树的情况. 1.示例图 2.分析需求 put数据时: key值hash后的索引处没有元素,需要创建链表头节点, ...