前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql主从复制的搭建及原理

Mysql主从复制的搭建及原理

作者头像
互联网-小阿宇
发布2022-11-21 17:43:45
2760
发布2022-11-21 17:43:45
举报
文章被收录于专栏:互联网-小阿宇

这次来了解一下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(从)

关防火墙/沙盒

代码语言:javascript
复制
systemctl stop firewalld && setenforce 0

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

代码语言:javascript
复制
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
代码语言:javascript
复制
yum -y install mysql57-community-release-el7-11.noarch.rpm

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

代码语言:javascript
复制
yum repolist enabled | grep mysql.*

3.可以进行安装mysql了

代码语言:javascript
复制
yum install mysql-community-server

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

代码语言:javascript
复制
systemctl start mysqld.service

5.获取随机密码

代码语言:javascript
复制
grep 'temporary password' /var/log/mysqld.log

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

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

7.进行修改数据库密码

代码语言:javascript
复制
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重启

代码语言:javascript
复制
systemctl restart mysqld

进入mysql查看binlog是否开启成功

进入MySQL创建用户并授权

代码语言:javascript
复制
grant replication slave on *.* to 'slave'@'192.168.2.%' identified by '123.com';

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

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

代码语言:javascript
复制
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从库机器
代码语言:javascript
复制
vi /etc/my.cnf

重启MySQL服务

代码语言:javascript
复制
systemctl restart mysqld

查看主服务器状态

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

代码语言:javascript
复制
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;

启动同步

代码语言:javascript
复制
start slave;

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

代码语言:javascript
复制
show slave status\G;

测试一下同步是否成功

在Master上创建一个库Slave能同步 主:

从:

测试:从创建库主不同步 从:

主:没有

实验完毕!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 9.进行主从复制的设置修改配置文件
  • 配置Master主库机器
  • 配置Slave从库机器
  • 查看主服务器状态
  • 从库服务器MySQL登录,同步配置
  • 查看slave状态,这两项必须为yes
  • 测试一下同步是否成功
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档