在Ubuntu上设置MariaDB复制功能,可以按照以下步骤进行:
一、准备工作- 确保两台服务器都已安装MariaDB:
- 配置防火墙:
sudo ufw allow 3306/tcp
- 备份主服务器数据:
- 编辑主服务器的配置文件(通常是
/etc/mysql/mariadb.conf.d/50-server.cnf
或/etc/my.cnf
):[mysqld]server-id = 1log_bin = /var/log/mysql/mysql-bin.logbinlog_do_db = your_database_name# 替换为你想要复制的数据库名称
- 重启MariaDB服务:
sudo systemctl restart mariadb
- 创建用于复制的专用用户:
mysql -u root -p
创建复制用户并授予权限:CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';# 替换为你的密码GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';FLUSH PRIVILEGES;EXIT;
- 获取主服务器的二进制日志位置:
SHOW MASTER STATUS;
记录下File
和Position
的值。三、配置从服务器- 编辑从服务器的配置文件:
[mysqld]server-id = 2relay_log = /var/log/mysql/mysql-relay-bin.loglog_bin = /var/log/mysql/mysql-bin.logreplicate_do_db = your_database_name# 替换为你想要复制的数据库名称
- 重启MariaDB服务:
sudo systemctl restart mariadb
- 配置从服务器连接到主服务器:
mysql -u root -p
执行以下命令来设置复制:CHANGE MASTER TOMASTER_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;
- 检查复制状态:
SHOW SLAVE STATUS\G
关注Slave_IO_Running
和Slave_SQL_Running
两个字段,它们都应该是Yes
。四、验证复制在主服务器上创建一个测试数据库或表,并插入一些数据。然后在从服务器上检查这些更改是否已同步。注意事项确保主从服务器的时间同步。定期检查复制状态,并处理可能出现的错误。如果需要更高的安全性,可以考虑使用SSL加密复制连接。按照以上步骤操作后,你应该能够在Ubuntu上成功设置MariaDB的复制功能。如果在过程中遇到问题,请参考MariaDB官方文档或寻求社区帮助。