在Debian系统上配置MariaDB的主从复制涉及几个关键步骤。以下是一个详细的指南,帮助你设置MariaDB的主从复制:
192.168.12.60
192.168.12.71
在两台机器上分别安装MariaDB数据库。
sudo apt update
sudo apt install mariadb-server mariadb-client
sudo systemctl stop mariadb
编辑 /etc/mysql/my.cnf
文件,添加以下内容:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
bind-address=192.168.12.60
sudo systemctl restart mariadb
登录到MariaDB并创建一个用于复制的用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
锁定数据库表并查看当前二进制日志信息:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
记下 File
和 Position
的值,稍后会用到。
UNLOCK TABLES;
alldb.sql
mysqldump -u root -p --all-databases > /opt/alldb.sql
scp /opt/alldb.sql 192.168.12.71:/opt/
sudo systemctl stop mariadb
编辑 /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
sudo systemctl restart mariadb
mysql -u root -p < /opt/alldb.sql
登录到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;
START SLAVE;
SHOW SLAVE STATUS\G;
确保 Slave_IO_Running
和 Slave_SQL_Running
都是 Yes。
CREATE DATABASE testdb;
在从服务器上执行以下命令,检查复制状态:
SHOW SLAVE STATUS\G;
如果从服务器上没有同步到数据,可能需要停止从服务器,手动导入主服务器的数据,然后重新启动从服务器:
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;
定期检查主从服务器的状态,确保同步正常运行。监控网络连接和日志文件,以便及时发现并解决同步问题。
通过以上步骤,你应该能够在Debian系统上成功配置MariaDB的主从复制。如果有任何问题,请检查MariaDB的错误日志以获取更多信息。