阿国运维网技术分享平台:桌面运维、网络运维、系统运维、服务器运维(及云服务器),精品软件分享、阿国网络、尽在北京运维网
一主一从架构是 MySQL 主备架构中最为基础和简单的一种形式。在这种架构下,只有一个主数据库(Master)和一个从数据库(Slave)。
这种架构的优点在于结构简单,易于搭建和维护,成本较低。对于一些小型企业或业务场景较为简单的应用来说,一主一从架构能够满足基本的数据备份和读写分离需求。
在 MySQL 中配置主备(主从复制),可以实现数据的备份、读写分离等功能。以下是详细的配置步骤:
环境准备
两台 MySQL 服务器,一台作为主服务器(Master),另一台作为备服务器(Slave)。
两台服务器的 MySQL 版本尽量保持一致。
确保两台服务器之间网络连通,并且可以互相访问。
主服务器(Master)配置
编辑 MySQL 配置文件
通常 MySQL 的配置文件为
/etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf,
在文件中添加或修改以下配置:
[mysqld]
# 唯一的服务器 ID,取值范围为 1 - 2^32 - 1
server-id = 1
# 开启二进制日志,用于记录数据库的变更
log-bin = mysql-bin
# 可选:指定需要复制的数据库,如果不指定则复制所有数据库
binlog-do-db = your_database_name
修改完成后,重启 MySQL 服务:
sudo systemctl restart mysql
2. 创建用于复制的用户
登录 MySQL 控制台,创建一个具有复制权限的用户,并授予相应的权限:
-- 创建用户,'repl_user' 为用户名,'repl_password' 为密码
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password';
-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
3. 获取主服务器的二进制日志信息
在 MySQL 控制台执行以下命令,记录下 File 和 Position 的值:
SHOW MASTER STATUS;
输出结果示例:
备服务器(Slave)配置
1. 编辑 MySQL 配置文件
同样编辑 MySQL 配置文件,添加或修改以下配置:
[mysqld]
# 唯一的服务器 ID,不能与主服务器相同
server-id = 2
修改完成后,重启 MySQL 服务:
sudo systemctl restart mysql
2. 配置备服务器连接主服务器
登录 MySQL 控制台,执行以下命令配置备服务器连接主服务器:
-- 停止备服务器的复制进程
STOP SLAVE;
-- 配置主服务器的连接信息
CHANGE MASTER TO
MASTER_HOST = 'master_server_ip',
MASTER_USER = 'repl_user',
MASTER_PASSWORD = 'repl_password',
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 154;
-- 启动备服务器的复制进程
START SLAVE;
其中,master_server_ip 为主服务器的 IP 地址,MASTER_LOG_FILE 和 MASTER_LOG_POS 的值是在主服务器上执行 SHOW MASTER STATUS; 命令得到的。
3. 检查备服务器的复制状态
执行以下命令检查备服务器的复制状态:
SHOW SLAVE STATUS\G
如果输出结果中的 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes,则表示主从复制配置成功。
验证主备复制
在主服务器上创建一个新的数据库或表,并插入一些数据,然后在备服务器上查看是否同步成功:
-- 在主服务器上创建数据库
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT, name VARCHAR(20));
INSERT INTO test_table VALUES (1, 'test');
-- 在备服务器上查看是否同步
SHOW DATABASES;
USE test_db;
SELECT * FROM test_table;
通过以上步骤,基本可以完成 MySQL 的主备复制配置。







