linux

MariaDB复制功能如何配置

小樊
45
2025-08-23 15:39:20
栏目: 云计算

MariaDB的复制功能可以通过以下步骤进行配置:

一、准备工作

  1. 确保主服务器和从服务器都已安装并运行MariaDB。
  2. 为主服务器和从服务器分配唯一的服务器ID。
  3. 在主服务器上创建一个用于复制的专用用户,并授予相应的权限。

二、配置主服务器

  1. 编辑主服务器的my.cnf(或my.ini)文件,添加以下配置:
[mysqld]
server-id = 1  # 唯一的服务器ID
log_bin = /var/log/mysql/mysql-bin.log  # 二进制日志文件路径
binlog_do_db = mydb  # 需要复制的数据库名称(可选)
  1. 重启MariaDB服务以应用更改:
sudo systemctl restart mariadb
  1. 登录到主服务器的MySQL命令行界面,并创建复制用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';  # 替换为实际密码
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
  1. 查看主服务器的二进制日志位置和文件名:
SHOW MASTER STATUS;

记下FilePosition的值,稍后会在从服务器上使用。

三、配置从服务器

  1. 编辑从服务器的my.cnf(或my.ini)文件,添加以下配置:
[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  # 需要复制的数据库名称(可选)
  1. 重启MariaDB服务以应用更改:
sudo systemctl restart mariadb
  1. 登录到从服务器的MySQL命令行界面,并配置复制:
CHANGE MASTER TO
MASTER_HOST='master_ip',  # 替换为主服务器的IP地址
MASTER_USER='replicator',
MASTER_PASSWORD='password',  # 替换为实际密码
MASTER_LOG_FILE='mysql-bin.000001',  # 替换为主服务器上记录的二进制日志文件名
MASTER_LOG_POS=123;  # 替换为主服务器上记录的二进制日志位置
  1. 启动从服务器上的复制进程:
START SLAVE;
  1. 检查从服务器的复制状态:
SHOW SLAVE STATUS\G

确保Slave_IO_RunningSlave_SQL_Running都显示为Yes。如果有任何错误,请根据错误信息进行排查。

四、注意事项

通过以上步骤,您应该能够成功配置MariaDB的复制功能。如果在配置过程中遇到问题,请参考MariaDB官方文档或寻求社区支持。

0
看了该问题的人还看了