如何配置Linux MariaDB主从复制

如何配置Linux MariaDB主从复制

搭建mariadb主从复制环境需要完成以下几个步骤。前提是你已经在两台服务器上部署好MariaDB,并且它们之间可以互相通信。

1. 设置主数据库服务器

  1. 修改主服务器的配置文件(通常为 /etc/my.cnf 或者 /etc/mysql/my.cnf):

     [mysqld]  server-id = 1  log_bin = /var/log/mysql/mysql-bin.log  binlog_do_db = mydb  # 使用你要同步的数据库名替换该字段
  2. 重启MariaDB服务以应用更改

     sudo systemctl restart mariadb
  3. 进入MariaDB并创建用于复制的账号

     CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';  # 密码请按需修改  GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';  FLUSH PRIVILEGES;
  4. 锁定表并查看当前二进制日志状态

     FLUSH TABLES WITH READ LOCK;  SHOW MASTER STATUS;

    记录 File 和 position 的信息,后续操作会用到。

  5. 释放表锁

     UNLOCK TABLES;

2. 设置从数据库服务器

  1. 编辑从服务器的配置文件(一般位于 /etc/my.cnf 或 /etc/mysql/my.cnf):

     [mysqld]  server-id = 2  relay_log = /var/log/mysql/mysql-relay-bin.log  log_bin = /var/log/mysql/mysql-bin.log  binlog_do_db = mydb  # 数据库名称请根据实际情况调整  read_only = 1
  2. 重启MariaDB服务使新配置生效

     sudo systemctl restart mariadb
  3. 登录MariaDB并设置主服务器连接信息

     CHANGE MASTER TO  MASTER_HOST='master_ip',  # 替换为主服务器IP地址  MASTER_USER='replicator',  MASTER_PASSWORD='password',  # 与之前设置的密码一致  MASTER_LOG_FILE='mysql-bin.000001',  # 替换为你记录的File值  MASTER_LOG_POS=123;  # 替换为你记录的Position值
  4. 启动从服务器复制功能

     START SLAVE;
  5. 查询从服务器运行状态

     SHOW SLAVE STATUSG

    确保 Slave_IO_Running 和 Slave_SQL_Running 都显示 Yes,否则请排查错误原因。

3. 测试数据同步

在主服务器执行插入操作,并在从服务器检查是否已同步:

-- 在主服务器上 USE mydb; INSERT INTO mytable (column1, column2) VALUES ('value1', 'value2'); <p>-- 在从服务器上 USE mydb; SELECT * FROM mytable;

如果从服务器能查到新增的数据,则表示复制配置成功。

常见注意事项

  • 主从服务器时间要保持一致。
  • 确认防火墙规则允许访问MySQL默认端口 3306。
  • 如果使用云主机,请确保安全组或网络策略放行相关流量。

通过上述步骤,你应该已经完成了MariaDB主从复制的配置工作。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享