当前位置: 首页 > article >正文

MySQL主从服务器配置教程

文章目录

  • 前言
  • 一、环境准备
    • 1. 服务器信息
    • 2. 安装 MySQL
    • 3. 初始化 MySQL
    • 4. Navicat查看 MySQL 服务器
  • 二、主服务器(Master)配置
    • 1. 编辑 MySQL 配置文件
    • 2. 创建用于复制的用户
    • 3. 获取二进制日志信息
  • 三、从服务器(Slave)配置
    • 1. 编辑 MySQL 配置文件
    • 2. 配置从服务器连接主服务器
    • 3. 启动从服务器复制进程
    • 4. 检查从服务器状态
  • 四、测试主从复制
    • 1. 在主服务器上创建测试数据库和表
    • 2. 在从服务器上检查数据复制情况
  • 五、注意事项


前言

MySQL 主从复制是一种常见的数据库架构,通过将主服务器(Master)的数据复制到一个或多个从服务器(Slave)上,实现数据的备份、负载均衡以及读写分离等功能。本教程将详细介绍在 Linux 系统(以 CentOS 7 为例)下配置 MySQL 主从服务器的步骤。


一、环境准备

1. 服务器信息

主服务器(Master):IP 地址为 192.168.1.100,操作系统为 CentOS 7,MySQL 版本为 8.0。
从服务器(Slave):IP 地址为 192.168.1.101,操作系统为 CentOS 7,MySQL 版本为 8.0。

2. 安装 MySQL

在主服务器和从服务器上分别安装 MySQL 8.0,可使用以下命令:

# 更新系统软件包
sudo yum update -y
# 安装 MySQL 官方仓库
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 安装 MySQL 服务器
sudo yum install -y mysql-server
# 启动 MySQL 服务
sudo systemctl start mysqld
# 设置 MySQL 服务开机自启
sudo systemctl enable mysqld

3. 初始化 MySQL

在主服务器和从服务器上分别执行以下命令初始化 MySQL:

# 获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log
# 使用临时密码登录 MySQL
mysql -u root -p
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

4. Navicat查看 MySQL 服务器

  • Navicat 是功能强大的数据库管理工具,它有直观图形界面,无需复杂代码即可操作。

Navicat16安装教程(附安装包)原文链接:https://blog.csdn.net/xxjc2025/article/details/145739774

Navicat16下载链接:https://pan.quark.cn/s/7078d579bdcf

二、主服务器(Master)配置

1. 编辑 MySQL 配置文件

使用以下命令编辑 /etc/my.cnf 文件:

sudo vi /etc/my.cnf
在文件中添加或修改以下配置:
ini
[mysqld]
# 服务器唯一 ID,必须为正整数,主从服务器不能相同
server-id = 1
# 开启二进制日志,用于记录数据库的更改
log-bin = mysql-bin
# 指定二进制日志的过期时间,可根据实际情况调整
expire-logs-days = 10
# 二进制日志文件的最大大小
max-binlog-size = 100M
# 允许复制的数据库,可根据实际情况修改
binlog-do-db = your_database_name

保存并退出文件后,重启 MySQL 服务:

sudo systemctl restart mysqld

2. 创建用于复制的用户

登录 MySQL 并执行以下命令创建一个用于主从复制的用户:

CREATE USER 'repl_user'@'%' IDENTIFIED BY 'YourReplicationPassword';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;

3. 获取二进制日志信息

在 MySQL 中执行以下命令获取当前二进制日志的文件名和位置:

SHOW MASTER STATUS;

记录下 File 和 Position 的值,后续配置从服务器时会用到。

三、从服务器(Slave)配置

1. 编辑 MySQL 配置文件

使用以下命令编辑 /etc/my.cnf 文件:

sudo vi /etc/my.cnf

在文件中添加或修改以下配置:

[mysqld]
# 服务器唯一 ID,必须为正整数,主从服务器不能相同
server-id = 2

保存并退出文件后,重启 MySQL 服务:

sudo systemctl restart mysqld

2. 配置从服务器连接主服务器

登录 MySQL 并执行以下命令配置从服务器连接主服务器:

CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='repl_user',
MASTER_PASSWORD='YourReplicationPassword',
MASTER_LOG_FILE='mysql-bin.xxxxxx',
MASTER_LOG_POS=xxxxxx;

将 MASTER_LOG_FILE 和 MASTER_LOG_POS 替换为在主服务器上执行 SHOW MASTER STATUS; 时记录的值。

3. 启动从服务器复制进程

在 MySQL 中执行以下命令启动从服务器的复制进程:

START SLAVE;

4. 检查从服务器状态

执行以下命令检查从服务器的状态:

SHOW SLAVE STATUS\G;

确保 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes,表示复制进程正常运行。

四、测试主从复制

1. 在主服务器上创建测试数据库和表

登录主服务器的 MySQL 并执行以下命令:

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('Test Data');

2. 在从服务器上检查数据复制情况

登录从服务器的 MySQL 并执行以下命令:

USE test_db;
SELECT * FROM test_table;

如果能看到主服务器上插入的数据,说明主从复制配置成功。

五、注意事项

  • 网络连接:主服务器和从服务器之间必须能够正常通信,确保防火墙允许 MySQL 端口(默认 3306)的流量通过。
  • 数据一致性:在配置主从复制之前,确保主服务器和从服务器上的数据一致。可以使用数据备份和恢复的方法来保证数据一致性。
  • 日志管理:定期清理二进制日志文件,避免占用过多的磁盘空间。可根据 expire-logs-days 和 max-binlog-size 配置进行管理。

通过以上步骤,你可以成功配置 MySQL 主从服务器,实现数据的复制和同步。


http://www.kler.cn/a/559153.html

相关文章:

  • Python安全之反序列化——pickle/cPickle
  • 50周学习go语言:第1周 环境搭建
  • CSS中伪类选择器
  • C++核心指导原则: 枚举
  • NIO-Reactor模型梳理与demo实现
  • 单页图床HTML源码+本地API接口图床系统修复版源码
  • SpringBoot整合Redis和Redision锁
  • Linux 常见面试题汇总
  • Qt QStackedWidget 总结
  • 前后端对接
  • 大数据迁移时业务应用有哪些可能的变更
  • 【Redis】基础知识入门
  • Linux CentOS 上 Ollama 的安装与部署:从入门到实践
  • Ae 效果详解:3D 通道提取
  • Sliding Window Attention(滑动窗口注意力)解析: Pytorch实现并结合全局注意力(Global Attention )
  • CSS—盒模型(3分钟结合示例精通盒模型)
  • windows使用命令解压jar包,替换里面的文件。并重新打包成jar包,解决Failed to get nested archive for entry
  • Python 基本语法的详细解释
  • 深度解析:大模型在多显卡服务器下的通信机制与分布式训练——以DeepSeek、Ollama和vLLM为例
  • vue前端菜单权限控制