MySQL配置主从复制

0
100

MySQL 的复制有很多种,主从复制,主主复制,一主多从复制等,本文主要演示主从复制。

环境说明

安装MySQL

MySQL版本:5.7.xx

MySQL启动后,在 /var/log/mysqld.log 文件中给 root 生成了一个默认密码。通过下面的方式找到 root 默认密码,然后登录 mysql 进行修改:

MySQL默认只允许 root 帐户在本地登录,为了安全起见,如果要在其它机器上连接 MySQL,就添加一个允许远程连接的帐户:

MySQL用户相关常用命令:

如果有防火墙记得开放端口

搭建主从复制

本文介绍一主一备

MySQL复制有两种方式:基于语句的复制和基于行的复制,一般使用基于行的复制。

基于行的复制一般分为 3 步:

在主库上把数据更改记录到二进制日志 (Binary Log) 中;
从库将主库的日志复制到自己的中继日志 (Relay Log) 中;
从库读取中继日志的时间,将其重放到从库的数据库中;

两台 MySQL 服务器

系统 节点IP 节点类型
centos7.5 192.168.3.21 Master
centos7.5 192.168.3.22 Slave

在两台机器上按照上文的说明安装好MySQL,配置好root密码

然后在两台机上都创建一个用于复制的账号

在master库上配置

如果log_bin目录没有的话,需要自行创建

然后重启Master库的MySQL服务

得到结果

File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
mysql-bin.000001 12 db1,db2,db3

从结果看到, File 字段有值,并且前面与配置文件一致,说明配置正确。后面的 000001 说明是第一次,如果 MySQL 从启服务,这个值会递增为 mysql-bin.000002

在slave库上配置

重启Slave库的 MySQL 服务

如果遇到突发情况,需要将从库改为主库,登录到Slave库服务器

从另一个服务器开始复制

一般的情况下是已经有主数据库了,要新建复制数据库,这就需要先使两个 MySQL 实例的内容一致,之后在进行复制配置

首先Master库操作

得到结果

File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
mysql-bin.000001 184

然后在Slave库设置,从已存在的Mater库复制Slave库的配置和上面介绍的基本都一样,只在配置好之后先执行发下操作

然后设置Slave库的复制参数

至此,从已存在的Mater库复制也操作完成。

留下一个答复

请输入你的评论!
请在这里输入你的名字

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据