以下是在Ubuntu上配置MariaDB主从复制的步骤:
安装MariaDB
sudo apt update && sudo apt install mariadb-server
sudo systemctl start mariadb && sudo systemctl enable mariadb
修改配置文件
编辑 /etc/mysql/mariadb.conf.d/50-server.cnf,添加:
[mysqld]
server-id = 1 # 主服务器唯一ID
log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志
binlog_do_db = your_database # 指定同步的数据库(可选)
重启服务并创建复制用户
sudo systemctl restart mariadb
mysql -u root -p
执行SQL:
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 值,后续用于从服务器配置。
安装MariaDB
同主服务器安装步骤。
修改配置文件
编辑 /etc/mysql/mariadb.conf.d/50-server.cnf,添加:
[mysqld]
server-id = 2 # 从服务器唯一ID(需与主服务器不同)
relay_log = /var/log/mysql/mysql-relay-bin.log
read_only = 1 # 设置为只读(可选)
重启服务并配置主从同步
sudo systemctl restart mariadb
mysql -u root -p
执行SQL:
CHANGE MASTER TO
MASTER_HOST='master_ip', # 主服务器IP
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001', # 替换为主服务器记录的File值
MASTER_LOG_POS=123; # 替换为主服务器记录的Position值
START SLAVE;
在从服务器执行:
SHOW SLAVE STATUS\G
确保 Slave_IO_Running 和 Slave_SQL_Running 均为 Yes,表示复制正常。
ntp 或 chrony)。参考来源: