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 主从服务器,实现数据的复制和同步。