当前位置:首页 > 行业动态 > 正文

如何开始配置和使用MySQL的主从数据库?

要开始使用 MySQL 主从复制,需编辑主库和从库的配置文件(my.cnf),设置服务器ID、二进制日志等参数。

MySQL的主从数据库配置文件_开始使用

如何开始配置和使用MySQL的主从数据库?  第1张

在现代应用开发中,数据库的高效管理与可靠性至关重要,MySQL主从复制是一种常见的数据库架构,用于提高数据高可用性、负载均衡和数据备份能力,本文将详细介绍如何配置和使用MySQL的主从复制功能。

一、主从复制原理

MySQL主从复制的原理主要包含以下三个步骤:

1、二进制日志记录:主库(Master)将所有数据更改记录到二进制日志(Binary Log)中,这些日志称为二进制日志事件。

2、日志复制:从库(Slave)通过IO线程将主库上的二进制日志复制到自己的中继日志(Relay Log)。

3、SQL执行:从库通过SQL线程读取中继日志中的事件,并重放到自身的数据库中。

下图展示了MySQL主从复制的基本架构:

++         ++
|    主库 (Master)  |         |   从库 (Slave)   |
|                   |         |                  |
| Binary Log        |<>|  Relay Log       |
++         ++

二、环境准备

假设我们已经有两台服务器,分别作为主库和从库:

主库(Master)

IP: 192.168.197.135

从库(Slave)

IP: 192.168.197.136

三、主库配置

1. 修改主库my.cnf文件

在主库上编辑/etc/my.cnf文件,添加以下内容:

[mysqld]
服务的唯一编号
serverid = 1
开启binlog功能
logbin = mysqlbin
binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
指定需要复制的数据库名为jgyw
binlogdodb = jgyw

保存后重启MySQL服务:

service mysqld restart

2. 创建同步用户

登录MySQL终端,执行以下命令:

CREATE USER 'jgyw'@'192.168.197.136' IDENTIFIED BY 'jgyw@123';
GRANT REPLICATION SLAVE ON *.* TO 'jgyw'@'192.168.197.136';
FLUSH PRIVILEGES;

3. 查看主库状态

SHOW MASTER STATUSG;

记下输出中的File和Position值,后续从库配置时需要用到。

四、从库配置

1. 修改从库my.cnf文件

在从库上编辑/etc/my.cnf文件,添加以下内容:

[mysqld]
服务的唯一编号
serverid = 2
开启binlog功能
logbin = mysqlbin
binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
指定需要复制的数据库名为jgyw
replicatedodb = jgyw

保存后重启MySQL服务:

service mysqld restart

2. 配置从库同步信息

登录从库MySQL终端,执行以下命令:

CHANGE MASTER TO
MASTER_HOST='192.168.197.135',
MASTER_USER='jgyw',
MASTER_PASSWORD='jgyw@123',
MASTER_LOG_FILE='mysqlbin.000002', # 从主库show master status获取的文件名
MASTER_LOG_POS=2380; # 从主库show master status获取的位置

3. 启动从库同步

START SLAVE;

4. 查看从库状态

SHOW SLAVE STATUSG;

确保Slave_IO_Running和Slave_SQL_Running都为Yes,表示从库配置成功。

五、测试主从复制

1. 在主库创建数据库和表并插入数据

CREATE DATABASE jgyw;
USE jgyw;
CREATE TABLE comm_config (configId varchar(200) NOT NULL, configValue varchar(1024) DEFAULT NULL, description varchar(2000) DEFAULT NULL, PRIMARY KEY (configId)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO comm_config(configId, configValue, description) VALUES('name', '架构与我', '测试一下');

2. 在从库查看同步结果

SHOW DATABASES;
USE jgyw;
SHOW TABLES;
SELECT * FROM comm_config;

如果从库中能看到与主库一致的数据,说明主从复制配置成功。

六、FAQs

1. 如何更改从库的同步源?

要更改从库的同步源,可以执行以下命令:

STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='新的主库IP',
MASTER_USER='同步用户',
MASTER_PASSWORD='同步密码',
MASTER_LOG_FILE='新的日志文件',
MASTER_LOG_POS=新的位置;
START SLAVE;

2. 如果从库同步中断怎么办?

首先检查从库的错误日志,找出导致中断的原因,如果是因为网络问题或临时故障,可以手动启动同步:

START SLAVE;

如果是因为主库的二进制日志已经过期或者被删除,需要重新设置同步源并从新的二进制日志开始同步。

0