在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的数据同步。选择哪种方法取决于你的具体需求和环境。