MariaDB在Linux上的复制功能可以通过以下步骤进行配置:
my.cnf(或my.ini)文件。[mysqld]
server-id = 1 # 主服务器的唯一ID,必须为整数且全局唯一
log_bin = /var/log/mysql/mysql-bin.log # 二进制日志文件路径
binlog_do_db = mydb # 需要复制的数据库名称,可以指定多个
sudo systemctl restart mariadb
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
my.cnf文件:[mysqld]
server-id = 2 # 从服务器的唯一ID,必须与主服务器不同
relay_log = /var/log/mysql/mysql-relay-bin.log # 中继日志文件路径
log_bin = /var/log/mysql/mysql-bin.log # 可选,如果需要从服务器也进行二进制日志记录
binlog_do_db = mydb # 需要复制的数据库名称,应与主服务器一致
sudo systemctl restart mariadb
SHOW MASTER STATUS;
记下File和Position的值,例如:mysql-bin.000001和107。
CHANGE MASTER TO
MASTER_HOST='master_ip_address', # 主服务器的IP地址
MASTER_USER='replicator', # 复制用户的用户名
MASTER_PASSWORD='password', # 复制用户的密码
MASTER_LOG_FILE='mysql-bin.000001', # 主服务器的二进制日志文件名
MASTER_LOG_POS=107; # 主服务器的二进制日志位置
START SLAVE;
SHOW SLAVE STATUS\G
关注以下字段:
Slave_IO_Running: 应为Yes,表示I/O线程正在运行。Slave_SQL_Running: 应为Yes,表示SQL线程正在运行。Seconds_Behind_Master: 表示从服务器落后主服务器的时间(秒)。理想情况下应为0或接近0。/var/log/mysql/error.log)以获取更多信息。通过以上步骤,您应该能够在Linux上成功配置MariaDB的复制功能。