Mysql主从复制的搭建及原理

Mysql主从复制的搭建及原理

在这里插入图片描述

这次来了解一下MySQL的主从复制,为什么要用主从复制?是什么原理?
MySQL的主从复制带来很大的好处首先那就是数据复制的一致性,在生产环境中保证了数据的备份,而且主宕机后,从节点可以也可以保证正常工作,
模式有很多一主一从,一主两从,一主多从等等…
在这里插入图片描述

原理都是一样的:主节点将带有ddl和dml的语句记录到自己的二进制日志bin-log中,然后从节点通过I/O线程将二进制日志获取到自己的中继日志relay-log中,从节点通过sql线程将自己的中继日志relay-log中的命令进行执行,从而实现主从复制结构
本次实验环境两台服务器[一主一从]

服务器IP Centos版本 服务
192.168.2.10 CentOS Linux release 7.6.1810 (Core) MYSQL5.7(主)
192.168.2.20 CentOS Linux release 7.6.1810 (Core) MYSQL5.7(从)

关防火墙/沙盒

systemctl stop firewalld && setenforce 0

先进行安装MYSQL
1.安装MySQL的yum源

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql57-community-release-el7-11.noarch.rpm

2.安装完成,查看是否安装成功

yum repolist enabled | grep mysql.*

3.可以进行安装mysql了

yum install mysql-community-server

4.安装完成后就可以启动mysql了

systemctl start mysqld.service

5.获取随机密码

grep 'temporary password' /var/log/mysqld.log

6.如果想要设置自己的密码简单的话 ,它自带密码检查机制不让你设置简单的进行sql输入设置

mysql -uroot -p
password:刚获取的随机密码
修改默认密码复杂难度
mysql>set global validate_password_policy=0;#设置密码检查策略为0
mysql>set global validate_password_length=1;#设置密码的长度为1

7.进行修改数据库密码

set password for 用户名 @localhost = password('新密码');

8.至此MySQL安装完毕

9.进行主从复制的设置修改配置文件

配置Master主库机器

开启binlog 设置mysql的唯一编号(mysql5.7即更高版本新加参数), 和开启binlog日志 输入vi /etc/my.cnf 进入配置文件,按Insert键进入编辑模式,添加如下参数 server-id=1 (机器的唯一标识) log-bin=/var/lib/mysql/mysql-bin (开启binlog)
在这里插入图片描述

进行mysql重启

systemctl restart mysqld

进入mysql查看binlog是否开启成功
在这里插入图片描述

进入MySQL创建用户并授权

grant replication slave on *.* to 'slave'@'192.168.2.%' identified by '123.com';

//一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

注释:如果这条命令报错如下

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
证明密码设置过于简单,需要重新设置策略
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
再去创建用户授权就行了执行刚才的命令
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
#刷新

配置Slave从库机器

vi /etc/my.cnf

在这里插入图片描述
重启MySQL服务

systemctl restart mysqld

查看主服务器状态

在这里插入图片描述

从库服务器MySQL登录,同步配置

mysql> CHANGE MASTER TO MASTER_HOST='192.168.2.10',MASTER_USER='slave',MASTER_PASSWORD='123.com',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=898;

启动同步

start slave;

查看slave状态,这两项必须为yes

show slave status\G;

在这里插入图片描述

测试一下同步是否成功

在Master上创建一个库Slave能同步
主:
在这里插入图片描述
从:
在这里插入图片描述
测试:从创建库主不同步
从:
在这里插入图片描述
主:没有
在这里插入图片描述
实验完毕!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101946.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 爬虫(2)之re 爬取淘宝网「建议收藏」

    爬虫(2)之re 爬取淘宝网「建议收藏」我们通过requests可以很轻松地就获得网页上的所有内容,但是这些内容往往会夹杂着许多我们不需要的东西,因此我们需要解析和提取HTML数据。在先前介绍过的解析和提取html内容的库,只能够处理静态文本执行简单的搜索,缺乏灵活性,不能处理动态的文本信息。下面来介绍一下正则表达式。什么是正则表达式?正则表达式是用来简洁表达一组字符串的表达式正则表达式是一种通用的字符串表达框架正则表…

    2022年6月18日
    34
  • poe网线水晶头接法顺序_水晶头和网络插座接线是一样的吗

    poe网线水晶头接法顺序_水晶头和网络插座接线是一样的吗现在有很多有POE网线供电的网络设备例如监控摄像头布线只需要拉一根网线就可以解决供电和数据线路,很多路由器AP也有POE供电的只需要接一根网线就可以,POE供电的设备水晶头针脚一般用蓝,白蓝,白棕,棕,的这四根的其中两根或者四根,具体看设备的规范了,有些POE设备用蓝色和棕色传输。…

    2022年9月17日
    2
  • navcat15.0激活码【最新永久激活】

    (navcat15.0激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月31日
    206
  • 怎么用谷歌学术检索下载外文文献呢_谷歌中的外文文献如何引用呢

    怎么用谷歌学术检索下载外文文献呢_谷歌中的外文文献如何引用呢谷歌学术检索可以输入文献的篇名、关键词、参考文献、ISBN/ISSN、DOI等检索条件来检索,记得需要输入文字的都要用英文。一、下面举例演示下使用谷歌学术的过程,我用的是文献党下载器访问的谷歌学术,首先进入文献党下载器资源库双击“谷歌学术”名称,进入谷歌学术首页:

    2022年10月11日
    2
  • dm368 uboot烧写ubl卡住了_uboot教程

    dm368 uboot烧写ubl卡住了_uboot教程这三个参数均有UBOOT直接传递给内核,所以要想知道他们具体的作用,需要根系内核模块的结构。dm365_imp.oper_mode                   是指在内核模块中内存空间采用连续、或者不连续模式。davinci_capture.device_type             是你的捕获设备的设备类型davinci_enc_mngr.ch0_mode

    2022年8月13日
    5
  • springboot多环境配置文件_Springboot教程

    springboot多环境配置文件_Springboot教程第一步:三个配置文件,分别是默认配置application.yaml、开发配置application-dev.yaml、生产配置application-pro.yaml第二步:SpringBoot默认加载的是application.yaml,想要默认加载其他配置文件,需要在application.yaml中配置:这样加载的就是生产环境的配置了,打包打的也是application-pro.yaml文件。本地开发的时候也是加载的pro文件。第三步:想要打包的时候用pro文件,IDE开发的时候用的

    2022年9月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号