MySQL从库log-bin开启流程

本文将介绍如何在MySQL中将从库的log-bin功能开启,以实现主从复制。

流程图

flowchart TD
    A[准备从库] --> B[停止MySQL服务]
    B --> C[编辑my.cnf配置文件]
    C --> D[添加配置参数]
    D --> E[保存配置文件并退出]
    E --> F[启动MySQL服务]
    F --> G[连接主库]
    G --> H[获取主库二进制日志文件名和位置]
    H --> I[配置从库复制]
    I --> J[启动从库复制]

详细步骤

  1. 准备从库

在开始配置从库之前,首先需要确保从库已经安装了MySQL,并且能够正常连接到主库。

  1. 停止MySQL服务

在开始修改配置文件之前,需要先停止MySQL服务。

sudo systemctl stop mysql
  1. 编辑my.cnf配置文件

使用编辑器打开MySQL的配置文件,一般位于/etc/mysql/my.cnf/etc/my.cnf

sudo vi /etc/mysql/my.cnf
  1. 添加配置参数

在配置文件中添加以下参数,启用从库的log-bin功能。

[mysqld]
log-bin=mysql-bin
binlog-format=row
  • log-bin:指定二进制日志文件的前缀名称,MySQL会自动加上日期和序列号作为后缀。
  • binlog-format:指定二进制日志的格式,推荐使用row格式,因为它能够提供最准确的数据复制。
  1. 保存配置文件并退出

保存修改后的配置文件并退出编辑器。

  1. 启动MySQL服务

重新启动MySQL服务,使配置生效。

sudo systemctl start mysql
  1. 连接主库

使用MySQL客户端连接到主库,获取主库的二进制日志文件名和位置。

mysql -u <主库用户名> -p -h <主库地址>
  1. 获取主库二进制日志文件名和位置

在连接到主库的MySQL客户端中执行以下命令,获取主库的二进制日志文件名和位置。

show master status;

记录下返回结果中的FilePosition值,后续将用于配置从库复制。

  1. 配置从库复制

在从库上使用MySQL客户端连接到从库,配置从库复制。

mysql -u <从库用户名> -p -h <从库地址>

在连接到从库的MySQL客户端中执行以下命令,配置从库复制。

CHANGE MASTER TO MASTER_HOST='<主库地址>',
MASTER_USER='<主库用户名>',
MASTER_PASSWORD='<主库密码>',
MASTER_LOG_FILE='<主库二进制日志文件名>',
MASTER_LOG_POS=<主库二进制日志位置>;
  • <主库地址>:替换为主库的地址。
  • <主库用户名>:替换为主库的用户名。
  • <主库密码>:替换为主库的密码。
  • <主库二进制日志文件名>:替换为主库的二进制日志文件名。
  • <主库二进制日志位置>:替换为主库的二进制日志位置。
  1. 启动从库复制

启动从库复制。

START SLAVE;

至此,MySQL从库的log-bin功能已成功开启。从库将会从主库复制数据并生成自己的二进制日志文件。

关系图

erDiagram
    MASTER --|< SLAVE : 复制
  • MASTER:主库
  • SLAVE:从库

以上是开启MySQL从库log-bin的详细步骤和流程,希望能帮助你顺利实现主从复制。