主题
主从复制配置
1. 主服务器配置
编辑主服务器的配置文件(通常是 my.cnf
或 mariadb.cnf
),添加或修改以下内容:
ini
[mysqld]
server-id = 1 # 唯一的服务器ID
log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志
binlog_format = ROW # 推荐使用行格式日志
重启 MariaDB 服务使配置生效:
bash
sudo systemctl restart mariadb
创建复制专用用户并授权:
sql
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
获取当前二进制日志文件名和位置:
sql
SHOW MASTER STATUS;
记下 File
和 Position
值,稍后从服务器配置时使用。
2. 从服务器配置
编辑从服务器配置文件,设置唯一的 server-id
(不同于主服务器):
ini
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
read_only = 1
重启 MariaDB 服务:
bash
sudo systemctl restart mariadb
在从服务器上执行以下命令,配置主服务器信息:
sql
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='主服务器二进制日志文件名',
MASTER_LOG_POS=主服务器日志位置;
启动从服务器复制线程:
sql
START SLAVE;
检查复制状态:
sql
SHOW SLAVE STATUS\G
确保 Slave_IO_Running
和 Slave_SQL_Running
都为 Yes
,表示复制正常。
3. 其他注意事项
- 主从服务器时间应同步(建议使用 NTP)。
- 网络连接要保持稳定,确保复制不中断。
- 生产环境中可根据需求配置多从、多主或半同步复制。
通过配置主从复制,MariaDB 实现数据实时同步,提升数据库的容灾和负载能力。