搭建mariadb主从复制环境需要完成以下几个步骤。前提是你已经在两台服务器上部署好MariaDB,并且它们之间可以互相通信。
1. 设置主数据库服务器
-
修改主服务器的配置文件(通常为 /etc/my.cnf 或者 /etc/mysql/my.cnf):
[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = mydb # 使用你要同步的数据库名替换该字段
-
重启MariaDB服务以应用更改:
sudo systemctl restart mariadb
-
进入MariaDB并创建用于复制的账号:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; # 密码请按需修改 GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;
-
锁定表并查看当前二进制日志状态:
FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
记录 File 和 position 的信息,后续操作会用到。
-
释放表锁:
UNLOCK TABLES;
2. 设置从数据库服务器
-
编辑从服务器的配置文件(一般位于 /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
-
重启MariaDB服务使新配置生效:
sudo systemctl restart mariadb
-
登录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值
-
启动从服务器复制功能:
START SLAVE;
-
查询从服务器运行状态:
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