MySQL不停机主从配置指南

引言

在进行数据库的主从配置时,确保数据的可用性和一致性是非常重要的。停机配置可能会引起用户的困扰,因此实现不停机主从配置是非常必要的。下面将介绍整个过程及每一步的详细操作步骤与代码。

流程概述

以下是MySQL不停机主从配置的步骤:

步骤 操作内容
1 准备主服务器和从服务器
2 配置主服务器 MySQL
3 创建复制用户
4 获取主服务器的状态信息
5 配置从服务器 MySQL
6 启动复制
7 验证复制效果

每一步的详细操作

步骤 1: 准备主服务器和从服务器

确保两台服务器都已经安装了 MySQL,并且版本相同。

步骤 2: 配置主服务器 MySQL

编辑主服务器的配置文件 /etc/my.cnf,添加以下内容:

[mysqld]
server-id=1                # 设置主服务器 ID
log_bin=mysql-bin          # 开启二进制日志

重启 MySQL 服务以应用更改:

sudo systemctl restart mysql  # 重启 MySQL 服务

步骤 3: 创建复制用户

在主服务器上,创建一个用于复制的用户。进入 MySQL 命令行:

mysql -u root -p               # 登录 MySQL

执行以下 SQL 创建用户:

CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';  -- 创建复制用户并设置密码
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';      -- 授权用户进行复制
FLUSH PRIVILEGES;                                    -- 刷新权限

步骤 4: 获取主服务器的状态信息

获取当前的二进制日志文件及位置:

SHOW MASTER STATUS;  -- 查询主服务器的状态

记录输出的信息,例如 FilePosition,这将用于从服务器配置。

步骤 5: 配置从服务器 MySQL

编辑从服务器的配置文件 /etc/my.cnf,添加以下内容:

[mysqld]
server-id=2                # 设置从服务器 ID

重启从服务器的 MySQL 服务:

sudo systemctl restart mysql  # 重启 MySQL 服务

步骤 6: 启动复制

进入从服务器的 MySQL 命令行:

mysql -u root -p               # 登录 MySQL

执行以下命令设置复制:

CHANGE MASTER TO 
    MASTER_HOST='主服务器IP地址',        -- 替换为主服务器的 IP 地址
    MASTER_USER='replicator',           -- 设置复制用户
    MASTER_PASSWORD='password',          -- 复制用户密码
    MASTER_LOG_FILE='mysql-bin.000001',  -- 替换为步骤4获取的 File
    MASTER_LOG_POS=123;                 -- 替换为步骤4获取的 Position

启动复制进程:

START SLAVE;  -- 启动复制进程

步骤 7: 验证复制效果

在从服务器上,执行以下命令检查复制状态:

SHOW SLAVE STATUS\G;  -- 查看从服务器的状态

你应该看到 Slave_IO_RunningSlave_SQL_Running 均为 Yes,这意味着配置成功。

旅行图

journey
    title MySQL不间断主从配置之旅
    section 准备
      准备主服务器和从服务器: 5: 主服务器, 从服务器
    section 配置主服务器
      编辑主服务器配置文件: 5: 主服务器
      创建复制用户: 4: 复制用户
      获取主服务器状态信息: 3: 主服务器
    section 配置从服务器
      编辑从服务器配置文件: 5: 从服务器
      启动复制: 4: 从服务器
    section 验证
      验证复制效果: 5: 从服务器

结尾

通过以上步骤,你应该能够成功实现 MySQL 的不停机主从配置。务必在测试环境充分测试配置,确保你的生产环境安全稳定。复制的设置使得主服务器的负载能有效分担,提高了数据库的可用性。希望你能在未来的开发中能灵活应用这些知识!如果你有疑问,请随时询问。