温馨提示×

MariaDB在Linux上的复制功能如何配置

小樊
38
2025-10-14 01:58:58
栏目: 云计算

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

一、准备工作

  1. 确保版本兼容性
  • 确保主服务器和从服务器的MariaDB版本相同或兼容。
  1. 配置主服务器
  • 编辑主服务器的my.cnf(或my.ini)文件。
  • 添加或修改以下配置项:
[mysqld] server-id = 1 # 主服务器的唯一ID,必须为整数且全局唯一 log_bin = /var/log/mysql/mysql-bin.log # 二进制日志文件路径 binlog_do_db = mydb # 需要复制的数据库名称,可以指定多个 
  • 重启MariaDB服务以应用更改:
sudo systemctl restart mariadb 
  1. 创建复制用户
  • 在主服务器上登录MySQL,并创建一个用于复制的专用用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES; 

二、配置从服务器

  1. 编辑从服务器的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 # 需要复制的数据库名称,应与主服务器一致 
  • 重启MariaDB服务:
sudo systemctl restart mariadb 
  1. 获取主服务器的状态信息
  • 在主服务器上登录MySQL,并执行以下命令以获取复制所需的信息:
SHOW MASTER STATUS; 

记下FilePosition的值,例如:mysql-bin.000001107

三、配置从服务器连接主服务器

  1. 在从服务器上登录MySQL
  • 执行以下命令以配置从服务器连接到主服务器:
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; # 主服务器的二进制日志位置 
  1. 启动复制进程
  • 执行以下命令以启动从服务器上的复制进程:
START SLAVE; 

四、验证复制状态

  1. 检查从服务器的复制状态
  • 在从服务器上登录MySQL,并执行以下命令以查看复制状态:
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的复制功能。

0