了解主从复制原理

一,前期准备

1,VM虚拟机  (安装可参考:https://www.cnblogs.com/yoyoblogs/p/10942257.html,https://blog.csdn.net/tsundere_x/article/details/104263100)

2,安装centos7(镜像下载参考:https://pan.baidu.com/s/1XIf9lAxarLtVHHUqaE1LKQ  提取码:wfxe,如失效,可自行下载其他)

3,ftp 连接工具(也可在虚拟机机终端中操作,就是麻烦一些)

4,准备两台服务器 ,参照1中克隆步骤(我的示例服务器是  127(主)  128(从) )

5,下载对应的mysql安装文件(我示例装的是5.7.29版本.下载地址:https://dev.mysql.com/downloads/mysql/)

二:环境安装操作

1,  1,2步骤顺利完成安装,安装好vmware并在其下安装好centos7后,我尝试ssh端连接不上.ping  centos 的IP地址,出现如下错误:

可参考:https://blog.csdn.net/A_jungle/article/details/80285147 进行处理,没有此错误,自动跳过此步骤

2,查看是否安装mysql : rpm -qa | grep -i mysql

接下来在服务器中查找是否有相关的mysql包文件 :find / -name mysql ,为了不影响后续安装mysql的操作 将查询出来的文件删除,三个文件可同时删除,记住要留空格额.在运行find / -name mysql查看是否有相关的mysql包文件.另外一台服务器同理操作.

3,接下来将下载好的mysql包解压上传到服务器(另外一台服务器同理操作)

4,接下来进行 mysql 服务端和客户端的安装(另外一台服务器同理操作)

安装服务端: rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm --force --nodeps

安装客户端:rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm --force --nodeps

5,安装成功以后进行连接数据库 mysql -uroot -p 这个时候肯定是不知道密码的,点击enter进行下一步是会有一个报错的.接下来我们可以对/etc/my.cnf进行编辑跳过授权重置mysql密码,skip-grant-tables ##追加此行,跳过权限表.保存文件:wq!.重启mysql 服务: service mysqld restart.可不修改密码直接进行下一步操作.(另外一台服务器同理操作),实际应用一定要设置密码保证安全额.

接下来修改密码参考 https://blog.csdn.net/hdyebd/article/details/89153934;最后如果还是无法连接报错:ERROR 1820 (HY000): Unknown error 1820 的话进行如下操作:

需要修改两个全局参数:
mysql> set global validate_password_policy=0;
 mysql> set global validate_password_length=1;
 mysql> set global validate_password_policy=0;
        Query OK, 0 rows affected (0.00 sec)
 mysql> set global validate_password_length=1;
        Query OK, 0 rows affected (0.00 sec)
 mysql> set password=password("mysql");
 Query OK, 0 rows affected, 1 warning (0.00 sec)

.三:主从服务器配置

1,为了主从复制,创建数据库:create database demo;

2,编辑主服务器,修改配置文件: vi /etc/my.cnf

添加如下配置

#日志文件的名字(可自定义为自己的)

log_bin=master-a-bin

#日志文件的格式
binlog-format=ROW

#服务器的id 一定要是唯一的值
server-id=1

对应需要实现主从复制的数据库(根据自己的数据库进行编辑)
binlog_do_db=demo

3,配置完之后登陆主服务器数据库给从服务器授权:grant replication slave on *.* to 'root'@'192.168.68.%' identified by 'root';然后刷新权限: flush PRIVILEGES;

4,编辑从服务器

修改配置文件: vi /etc/my.cnf

添加如下配置

#日志文件的名字(可自定义为自己的)

log_bin=master-a-bin

#日志文件的格式
binlog-format=ROW

#服务器的id 一定要是唯一的值
server-id=2

保存重启主从服务器 : service mysqld restart

5,验证主从复制是否成功

进入mysql服务器,查看主服务器的状态:show master status;

6,登陆从服务器并且设置主从复制的日志和偏移量:

change master to master_host='192.168.68.127',master_port=3306,master_use
r='root',master_password='root',master_log_file='master-a-bin.000001',master_log
_pos=154;

7,启动slave的数据同步:start slave;

查看slave的状态:show slave status\G;

使用数据库连接工具测试连接是否成功:

我这里是可以通过数据库连接工具连接成功的,如果有连接不成功报错的:以下三点原因进行排查

1,防火墙 2,3306端口未开放 3,未授权

无论能不能连接成功都要进行授权操作,在主服务器进行将权限授权给客户端:grant replication slave on *.* to 'root'@'%' identified by 'root' with grant option;这时候会报一个1819的错,这个报错的主要原因是数据库对于密码的要求.我这里密码root是纯字母.不符合数据库的密码要求.可以通过修改配置文件修改密码验证的规则:

set global validate_password_length=1;

set global validate_password_policy=0;

这样的话纯字母密码就可以通过密码验证了.再次运行grant replication slave on *.* to 'root'@'%' identified by 'root' with grant option;就运行ok了

然后在主服务器上demo数据库中新建一个表,我的是Student表,建表自行百度

登陆从服务器查看是否进行主从复制了 ,Student表在从服务器中也存在了.

往主服务器Student中插入几条数据在从服务器中也可以同步复制过去,完美.

到此主从复制就已经结束了.希望能帮到大家.读写分离的实现是一定基于主从复制的,下个文章写读写分离.

MySQL主从复制和读写分离实现(上)相关推荐

  1. mysql主从复制、读写分离到数据库水平拆分及库表散列

    文章转载自http://blog.csdn.net/sd4422739/article/details/49514981 web项目最原始的情况是一台服务器只能连接一个mysql服务器(c3p0只能配 ...

  2. MySQL主从复制与读写分离配置及实操

    MySQL主从复制与读写分离 一.MySQL主从复制 1.复制类型 2.工作过程 二.MySQL读写分离 1.定义 2.存在意义 3.作用时间 4.原理 5.类型 基于程序代码内部实现 基于中间代理层 ...

  3. 【MySQL】Spring Boot项目基于Sharding-JDBC和MySQL主从复制实现读写分离(8千字详细教程)

    目录 前言 一. 介绍 二. 主从复制 1. 原理 2. 克隆从机 3. 克隆从机大坑 4. 远程登陆 5. 主机配置 6. 从机配置 7. 主机:建立账户并授权 8. 从机:配置需要复制的主机 9. ...

  4. 如何进行MySQL主从复制与读写分离的配置

    MySQL主从复制与读写分离 什么是读写分离? 为什么要读写分离呢? 什么时候要读写分离? 主从复制与读写分离 mysq支持的复制类型 主从复制的工作过程 MySQL主从复制延迟 MySQL主从复制实 ...

  5. 【数据库七】搭建MySQL主从复制和读写分离详解

    详解搭建搭建MySQL主从复制和读写分离 1.案例实施:搭建MySQL主从复制 1.1 主节点数据库(CentOS 7-5) 1.2 从节点数据库(CentOS 7-6) 1.3 从节点数据库(Cen ...

  6. 运维之道 | Mysql主从复制+mycat读写分离

    运维之道 | Mysql主从复制 + Mycat读写分离 1.什么是读写分离 读写分离,基本的原理是让主数据库处理事务性增.删.改操作(INSERT.UPDATE.DROP),而从数据库处理SELEC ...

  7. mysql主从读写Windows_Windows操作系统下的MySQL主从复制及读写分离

    一.主服务器(master)配置 1.修改MySQL配置文件my.ini [mysqld] log-bin=mysql-bin log-bin-index=mysql-bin.index server ...

  8. e盘是否具有读写权限_轻松搭建MySQL主从复制、读写分离(双机热备)

    主从复制: 当mysql数据库的数据量太大的时候,查询数据就很吃力了,无论怎么优化都会产生瓶颈,这时我们需要增加服务器设备来实现分布式数据库,实现多机热备份,要想实现多机的热备,首先要了解主从数据库服 ...

  9. mysql双机热备 读写分离_轻松搭建MySQL主从复制、读写分离(双机热备)

    主从复制: 当mysql数据库的数据量太大的时候,查询数据就很吃力了,无论怎么优化都会产生瓶颈,这时我们需要增加服务器设备来实现分布式数据库,实现多机热备份,要想实现多机的热备,首先要了解主从数据库服 ...

最新文章

  1. Nature综述:古菌的多样性、生态功能和进化史
  2. Go 语言编程 — 变量与常量
  3. 7、使用CallableStatement接口调用存储过程
  4. formal method online checking tool
  5. 从FM推演各深度学习CTR预估模型
  6. linux查看镜像的详细信息,docker inspect命令查看镜像详细信息
  7. Repeater片段
  8. Objective-c 程序结构
  9. 前端学习(1914)vue之电商管理系统电商系统之创建right分支并把代码推到码云
  10. 现代软件工程 结对/团队作业 - 汉字的 2048 + 俄罗斯方块
  11. android style边界显示兼容问题,android – IDE“无法解析@ style/Theme.Appcompat”时使用v7兼容性支持主题...
  12. 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序)
  13. 把ICDAR2019-LSVT原始数据集转为REC任务识别数据
  14. 至强E5系列CPU后面的数字含义
  15. 平面排版时,教你突出中文美感的几种方法
  16. [一本通]题解 1031
  17. 搭建STM32开发环境
  18. Unity 2D 打地鼠游戏制作过程总结
  19. scheduled java 失败_Unexpected error occurred in scheduled task.
  20. 来与大家分享一些我们珍藏的、有力量的语句

热门文章

  1. 思维导图:精益数据分析
  2. 【记录】VMware解决网络找不到服务器的问题
  3. Linux auditd主机系统安全审计服务配置技术方案
  4. 怎么讲计算机屏幕录制,怎么在电脑上录屏?屏幕录制软件是什么?
  5. Google三大论文之 - BigTable
  6. shejimoshi设计模式
  7. mysql关于in子查询索引
  8. 盘点2017年银行存管口碑平台:微贷网、财佰通、融金所等
  9. E-WORK 对接 MTS 系统
  10. mdf转sql mysql_如何将数据库文件.mdf导入/恢复到SQL_Server2000