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的复制功能。