温馨提示×

Ubuntu MariaDB复制功能如何设置

小樊
49
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