ubuntu

Ubuntu MariaDB如何实现数据同步

小樊
42
2025-07-25 22:16:12
栏目: 云计算

在Ubuntu上实现MariaDB的数据同步,可以采用多种方法。以下是两种常见的方法:

方法一:使用MariaDB复制(Replication)

MariaDB复制是一种异步复制机制,可以将一个MariaDB服务器(主服务器)的数据复制到一个或多个其他MariaDB服务器(从服务器)。

步骤:

  1. 配置主服务器

    • 编辑主服务器的/etc/mysql/my.cnf/etc/my.cnf文件,添加以下内容:
      [mysqld]
      server-id = 1
      log_bin = /var/log/mysql/mysql-bin.log
      binlog_do_db = your_database_name  # 替换为你要复制的数据库名称
      
    • 重启MariaDB服务:
      sudo systemctl restart mariadb
      
    • 创建一个用于复制的用户,并授予相应的权限:
      CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';
      GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
      FLUSH PRIVILEGES;
      
    • 查看主服务器的二进制日志位置和文件名:
      SHOW MASTER STATUS;
      
  2. 配置从服务器

    • 编辑从服务器的/etc/mysql/my.cnf/etc/my.cnf文件,添加以下内容:
      [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  # 替换为你要复制的数据库名称
      
    • 重启MariaDB服务:
      sudo systemctl restart mariadb
      
    • 配置从服务器连接到主服务器:
      CHANGE MASTER TO
      MASTER_HOST='master_ip_address',  # 替换为主服务器的IP地址
      MASTER_USER='replicator',
      MASTER_PASSWORD='your_password',
      MASTER_LOG_FILE='mysql-bin.000001',  # 替换为主服务器的二进制日志文件名
      MASTER_LOG_POS=123;  # 替换为主服务器的二进制日志位置
      START SLAVE;
      
  3. 验证复制状态

    • 在从服务器上执行以下命令,查看复制状态:
      SHOW SLAVE STATUS\G
      
    • 确保Slave_IO_RunningSlave_SQL_Running都为Yes

方法二:使用MariaDB Galera Cluster

MariaDB Galera Cluster是一种多主复制解决方案,可以实现多个节点之间的数据同步。

步骤:

  1. 安装MariaDB Galera Cluster

    • 添加MariaDB APT仓库:
      sudo apt-get install software-properties-common
      sudo add-apt-repository 'deb http://mirror.jmu.edu/pub/mariadb/repo/10.5/ubuntu focal main'
      sudo apt-get update
      
    • 安装MariaDB Galera Cluster:
      sudo apt-get install mariadb-server mariadb-galera-cluster
      
  2. 配置Galera Cluster

    • 编辑/etc/mysql/conf.d/galera.cnf文件,添加或修改以下内容:
      [mysqld]
      wsrep_provider=/usr/lib/galera/libgalera_smm.so
      wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>  # 替换为所有节点的IP地址
      wsrep_node_address=<node_ip>  # 替换为当前节点的IP地址
      wsrep_node_name=<node_name>  # 替换为当前节点的名称
      wsrep_sst_method=xtrabackup-v2
      binlog_format=row
      default_storage_engine=InnoDB
      innodb_autoinc_lock_mode=2
      
    • 重启MariaDB服务:
      sudo systemctl restart mariadb
      
  3. 验证集群状态

    • 在任意一个节点上执行以下命令,查看集群状态:
      SELECT * FROM wsrep_cluster_status;
      
    • 确保所有节点都显示为Synced状态。

通过以上两种方法,你可以在Ubuntu上实现MariaDB的数据同步。选择哪种方法取决于你的具体需求和环境。

0
看了该问题的人还看了