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能同步
主:
在这里插入图片描述
从:
在这里插入图片描述
测试:从创建库主不同步
从:
在这里插入图片描述
主:没有
在这里插入图片描述
实验完毕!!!

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java 滤波算法_双边滤波算法

    java 滤波算法_双边滤波算法1、原理高斯滤波是以距离为权重,设计滤波模板作为滤波系数,只考虑了像素间的空间位置上的关系,因此滤波的结果会丢失边缘的信息。高斯滤波的缺陷如下图所示:平坦区域正常滤波,图像细节没有变化,而在突变的边缘上,因为只使用了距离来确定滤波权重,导致边缘被模糊。在高斯基础上,进一步优化,叠加了像素值的考虑,因此也就引出了双边滤波,一种非线性滤波,滤波效果对保留边缘更有效。为了理解双边滤波的距离和像素差两个影…

  • oracle存储过程语法和用法,oracle存储过程 语法 函数 总结

    oracle存储过程语法和用法,oracle存储过程 语法 函数 总结对于oracle存储过程是很优秀的一种脚本语言。下面是一些整理:一,Plsql调试存储过程:1、在oracle的配置和移植工具àNETMANAGER中配置连接2、在plsql中新建SQL窗口,编写存储过程3、在plsql中新建测试窗口,在beginend之间调用4、查看编译错误:在命令窗口中showerrorsprocedureprocedure_name或者编辑的方式…

  • sql 语句查询 mysql 版本号「建议收藏」

    sql 语句查询 mysql 版本号「建议收藏」通过sql语句查询mysql版本号selectversion()fromdual;

  • declare-styleable的详细用法

    declare-styleable的详细用法简述declare-styleable的定义使用规则,做好笔记方便自己后期使用也方便他人使用。

  • navicat for mysql 15 for mac激活码【2021.10最新】

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

  • 如何利用python读excel数据_python在excel应用实例

    如何利用python读excel数据_python在excel应用实例文章目录python读取excel表数据的方法:完整的程序代码python读取excel表数据的方法:首先安装Excel读取数据的库xlrd;然后获取Excel文件的位置并且读取进来;接着读取指定的行和列的内容,并将内容存储在列表中;最后运行程序即可。python读取excel表数据的方法:安装Excel读取数据的库—–xlrd直接pipinstallxlrd安装xlrd库#引入Excel库的xlrdimportxlrd获取Excel文件的位置并且读取进来#导入需要读取Exc

发表回复

您的电子邮箱地址不会被公开。

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