温馨提示×

Ubuntu MariaDB复制功能如何设置

小樊
54
2025-07-07 17:49:51
栏目: 云计算

在Ubuntu上设置MariaDB复制功能,可以按照以下步骤进行:

一、准备工作

  1. 确保两台服务器都已安装MariaDB
  • 一台作为主服务器(Master)。
  • 另一台作为从服务器(Slave)。
  1. 配置防火墙
  • 确保主服务器允许从服务器的连接请求。
  • 在主服务器上运行以下命令开放3306端口(默认MySQL/MariaDB端口):
    sudo ufw allow 3306/tcp
    
  1. 备份主服务器数据
  • 在进行复制设置之前,建议先备份主服务器上的数据库,以防万一。

二、配置主服务器

  1. 编辑主服务器的配置文件(通常是/etc/mysql/mariadb.conf.d/50-server.cnf/etc/my.cnf):
  • 添加或修改以下配置项:
    [mysqld]
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = your_database_name  # 替换为你想要复制的数据库名称
    
  1. 重启MariaDB服务
sudo systemctl restart mariadb
  1. 创建用于复制的专用用户
  • 登录到MariaDB:
    mysql -u root -p
    
  • 创建复制用户并授予权限:
    CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';  # 替换为你的密码
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES;
    EXIT;
    
  1. 获取主服务器的二进制日志位置
  • 在MariaDB命令行中执行:
    SHOW MASTER STATUS;
    
  • 记录下FilePosition的值。

三、配置从服务器

  1. 编辑从服务器的配置文件
  • 添加或修改以下配置项:
    [mysqld]
    server-id = 2
    relay_log = /var/log/mysql/mysql-relay-bin.log
    log_bin = /var/log/mysql/mysql-bin.log
    replicate_do_db = your_database_name  # 替换为你想要复制的数据库名称
    
  1. 重启MariaDB服务
sudo systemctl restart mariadb
  1. 配置从服务器连接到主服务器
  • 登录到MariaDB:
    mysql -u root -p
    
  • 执行以下命令来设置复制:
    CHANGE MASTER TO
    MASTER_HOST='master_ip_address',  # 替换为主服务器的IP地址
    MASTER_USER='replicator',
    MASTER_PASSWORD='your_password',
    MASTER_LOG_FILE='recorded_log_file_name',  # 替换之前记录的File值
    MASTER_LOG_POS=recorded_log_position;  # 替换之前记录的Position值
    START SLAVE;
    
  1. 检查复制状态
  • 执行以下命令查看复制是否成功启动:
    SHOW SLAVE STATUS\G
    
  • 关注Slave_IO_RunningSlave_SQL_Running两个字段,它们都应该是Yes

四、验证复制

  • 在主服务器上创建一个测试数据库或表,并插入一些数据。
  • 然后在从服务器上检查这些更改是否已同步。

注意事项

  • 确保主从服务器的时间同步。
  • 定期检查复制状态,并处理可能出现的错误。
  • 如果需要更高的安全性,可以考虑使用SSL加密复制连接。

按照以上步骤操作后,你应该能够在Ubuntu上成功设置MariaDB的复制功能。如果在过程中遇到问题,请参考MariaDB官方文档或寻求社区帮助。

0