在Ubuntu上实现MariaDB的数据同步,可以采用多种方法。以下是两种常见的方法:
MariaDB复制是一种异步复制机制,可以将一个MariaDB服务器(主服务器)的数据复制到一个或多个其他MariaDB服务器(从服务器)。
配置主服务器:
/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 # 替换为你要复制的数据库名称
sudo systemctl restart mariadb
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;
SHOW MASTER STATUS;
配置从服务器:
/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 # 替换为你要复制的数据库名称
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;
验证复制状态:
SHOW SLAVE STATUS\G
Slave_IO_Running
和Slave_SQL_Running
都为Yes
。MariaDB Galera Cluster是一种多主复制解决方案,可以实现多个节点之间的数据同步。
安装MariaDB Galera Cluster:
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
sudo apt-get install mariadb-server mariadb-galera-cluster
配置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
sudo systemctl restart mariadb
验证集群状态:
SELECT * FROM wsrep_cluster_status;
Synced
状态。通过以上两种方法,你可以在Ubuntu上实现MariaDB的数据同步。选择哪种方法取决于你的具体需求和环境。