跳到正文
堆栈茶社
返回

MySQL Replication 主从复制 配置

更新于:
—次阅读
编辑此页

介绍

Replication 可以使数据从一个MySQL数据库(master)复制到一个或多个MySQL数据库(slave)中,默认情况下该复制过程是异步的。我们可以通过配置来实现复制所有的database或者指定的database。

MySQL Replication 的优点如下:

原理

作为master 的MySQL实例将数据的变更操作作为”事件”记录到binary log中,slave 的MySQL实例被被指为读取master的binary log,slave将读取到的binary log写入自己的中继日志中,然后slave回把相关的事件进行执行。slave具体执行哪些事件由slave决定。

配置

创建用于复制的账号

进入master的MySQL实例,执行以下操作:

执行以下命令创建账号,其中172.20.254.176为slave的MySQL的ip,liuqitech@2020为密码。

CREATE USER 'slave'@'172.20.254.176' IDENTIFIED BY 'liuqitech@2020';

分配权限,其中replication slave 表示 主从复制权限

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'172.20.254.176';

刷新权限

flush privileges;
master配置

开启二进制日志并设置唯一的server-id。修改my.cnf,添加如下配置

[mysqld]
log-bin=mysql-bin #表示开启binlog,并且指定二进制日志文件名为mysql-bin
server-id=1 #唯一的服务ID

重启MySQL使之生效

slave配置

被指唯一的server-id。修改my.cnf,添加如下配置

[mysqld]
server-id=2

重启MySQL使之生效

获取master的二进制日志文件坐标

master上执行以下操作

mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 67       |              |                  |
+------------------+----------+--------------+------------------+

记录File、Position的值

连接slave到master

slave上执行以下操作

mysql> CHANGE MASTER TO
         MASTER_HOST='172.20.254.175',
         MASTER_USER='slave',
         MASTER_PASSWORD='liuqitech@2020',
         MASTER_LOG_FILE='mysql-bin.000001',
         MASTER_LOG_POS=67;
mysql> start slave;
查看状态

slave 中执行 查看状态

mysql> SHOW SLAVE STATUS \G

观察是否正常运行中

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

编辑此页
分享这篇文章:

上一篇
CentOS 7 安装 JDK
下一篇
使用Keepalived实现简单的Nginx高可用