在Debian系统上配置MariaDB的主从复制涉及几个关键步骤。以下是一个详细的指南,帮助你设置MariaDB的主从复制:
1. 准备两台机器
- 主服务器(Master):例如
192.168.12.60 - 从服务器(Slave):例如
192.168.12.71
2. 安装MariaDB数据库
在两台机器上分别安装MariaDB数据库。
sudo apt update
sudo apt install mariadb-server mariadb-client
3. 配置主数据库
3.1 停止MariaDB服务
sudo systemctl stop mariadb
3.2 修改主数据库的配置文件
编辑 /etc/mysql/my.cnf 文件,添加以下内容:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
bind-address=192.168.12.60
3.3 重启MariaDB服务
sudo systemctl restart mariadb
3.4 创建主从复制用户账号
登录到MariaDB并创建一个用于复制的用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
3.5 获取主服务器的二进制日志位置
锁定数据库表并查看当前二进制日志信息:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
记下 File 和 Position 的值,稍后会用到。
3.6 解锁表
UNLOCK TABLES;
3.7 导出主数据库的数据为 alldb.sql
mysqldump -u root -p --all-databases > /opt/alldb.sql
3.8 把数据库文件拷贝到从服务器
scp /opt/alldb.sql 192.168.12.71:/opt/
4. 配置从数据库
4.1 停止从数据库服务
sudo systemctl stop mariadb
4.2 修改从数据库的配置文件
编辑 /etc/mysql/my.cnf 文件,添加以下内容:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
log_slave_updates=1
read_only=1
bind-address=192.168.12.71
4.3 重启MariaDB服务
sudo systemctl restart mariadb
4.4 在从服务器上导入主数据库数据
mysql -u root -p < /opt/alldb.sql
4.5 配置复制的参数
登录到MariaDB并配置复制,使用之前在主服务器上获取的 File 和 Position 值:
CHANGE MASTER TO
MASTER_HOST='192.168.12.60',
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123;
4.6 启动从服务器的复制进程
START SLAVE;
4.7 查看从服务器状态
SHOW SLAVE STATUS\G;
确保 Slave_IO_Running 和 Slave_SQL_Running 都是 Yes。
5. 验证主从复制情况
5.1 在主服务器上创建数据
CREATE DATABASE testdb;
5.2 查看从服务器数据同步状态
在从服务器上执行以下命令,检查复制状态:
SHOW SLAVE STATUS\G;
6. 处理同步问题
如果从服务器上没有同步到数据,可能需要停止从服务器,手动导入主服务器的数据,然后重新启动从服务器:
mysql -uroot -p test < /path/to/master.sql
在从服务器上停止复制:
STOP SLAVE;
更改从服务器的主服务器信息:
CHANGE MASTER TO
MASTER_HOST='192.168.12.60',
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=新的位置;
重新启动从服务器:
START SLAVE;
7. 监控和维护
定期检查主从服务器的状态,确保同步正常运行。监控网络连接和日志文件,以便及时发现并解决同步问题。
通过以上步骤,你应该能够在Debian系统上成功配置MariaDB的主从复制。如果有任何问题,请检查MariaDB的错误日志以获取更多信息。