主从复制配置

1. 主服务器配置

编辑主服务器的配置文件(通常是 my.cnfmariadb.cnf),添加或修改以下内容:

[mysqld]
server-id = 1                  # 唯一的服务器ID
log_bin = /var/log/mysql/mysql-bin.log  # 启用二进制日志
binlog_format = ROW            # 推荐使用行格式日志

`

重启 MariaDB 服务使配置生效:

sudo systemctl restart mariadb

创建复制专用用户并授权:

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

获取当前二进制日志文件名和位置:

SHOW MASTER STATUS;

记下 FilePosition 值,稍后从服务器配置时使用。

2. 从服务器配置

编辑从服务器配置文件,设置唯一的 server-id(不同于主服务器):

[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 服务:

sudo systemctl restart mariadb

在从服务器上执行以下命令,配置主服务器信息:

CHANGE MASTER TO
  MASTER_HOST='主服务器IP',
  MASTER_USER='repl',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='主服务器二进制日志文件名',
  MASTER_LOG_POS=主服务器日志位置;

启动从服务器复制线程:

START SLAVE;

检查复制状态:

SHOW SLAVE STATUS\G

确保 Slave_IO_RunningSlave_SQL_Running 都为 Yes,表示复制正常。

3. 其他注意事项

  • 主从服务器时间应同步(建议使用 NTP)。
  • 网络连接要保持稳定,确保复制不中断。
  • 生产环境中可根据需求配置多从、多主或半同步复制。

通过配置主从复制,MariaDB 实现数据实时同步,提升数据库的容灾和负载能力。