下面是MariaDB配置双主复制方案的完整攻略:
确认环境
在开始配置双主复制之前,请确保以下条件已经满足:
- 两台服务器上都已经安装了MariaDB数据库,并且版本相同;
- 两台服务器之间可以互相访问,可以使用ping命令检测;
- 在每台服务器上都创建了具有相同用户名和密码的数据库管理员账户。
配置Master节点
- 确认Master节点的my.cnf文件中已经配置了server-id选项,例如:
[mysqld]
server-id=1
- 创建一个专门用于复制的账户,并授予该账户复制的权限:
CREATE USER 'replication'@'%' IDENTIFIED BY '[password]';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
- 在Master节点上执行以下命令,记录File和Position:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
记录下结果中的File和Position字段,它们将在配置Slave节点时用到。
配置Slave节点
- 确认Slave节点的my.cnf文件中已经配置了server-id选项,并且值不同于Master节点的server-id值,例如:
[mysqld]
server-id=2
- 在Slave节点上执行以下命令,其中MASTER_HOST为Master节点的IP地址,MASTER_USER和MASTER_PASSWORD为Master节点上创建的复制账户的用户名和密码,MASTER_LOG_FILE和MASTER_LOG_POS为Master节点上执行SHOW MASTER STATUS后得到的File和Position的值:
CHANGE MASTER TO
MASTER_HOST='[master_ip]',
MASTER_USER='replication',
MASTER_PASSWORD='[replication_password]',
MASTER_LOG_FILE='[master_log_file]',
MASTER_LOG_POS=[master_log_pos];
- 启动Slave节点的复制进程:
START SLAVE;
- 检查Slave节点的复制状态是否正常:
SHOW SLAVE STATUS\G
观察其中的Slave_IO_Running和Slave_SQL_Running字段是否都为Yes,如果有任何一个为No,则复制失败,需要检查配置是否有误。
测试数据同步
在完成Master节点和Slave节点的配置之后,可以尝试在Master节点上创建一些数据,看看是否同步到了Slave节点上。
例如,在Master节点上执行以下SQL语句:
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (id INT PRIMARY KEY, name VARCHAR(50));
INSERT INTO testtable (id, name) VALUES (1, 'Alice');
然后在Slave节点上执行以下SQL语句,检查数据是否同步成功:
USE testdb;
SELECT * FROM testtable;
如果返回了刚才在Master节点上插入的数据,则说明双主复制已经配置成功。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MariaDB配置双主复制方案 - Python技术站