MariaDB 主从复制的配置

时间:2021-10-23 15:58:18

一、安装MariaDB

安装过程省略。

二、主从配置

环境

    Master/Slave     系统 IP 数据库版本
Master     CentOS6.7         10.10.3.211         mariadb-10.1.19    
Slave CentOS6.7 10.10.3.212 mariadb-10.1.19

1、Master的配置

(1)创建有复制权限的用户,命令如下:

CREATE USER 'test'@'10.10.3.212' IDENTIFIED BY '';
REVOKE ALL PRIVILEGES ,GRANT OPTION FROM 'test'@'10.10.3.212';
GRANT RELOAD,LOCK TABLES, REPLICATION CLIENT ,REPLICATION SLAVE ON *.* TO 'test'@'10.10.3.212';
FLUSH PRIVILEGES;

(2)启用二进制日志

修改配置文件/etc/my.cnf,增加如下行:

log-bin = /usr/local/mysql/binlogs/master-bin

注:目录没有话就先创建上

(3)修改配置文件/etc/my.cnf,修改如下行:

server-id = 1

重启Master数据库服务

2、Slave的配置

(1)修改配置文件/etc/my.cnf,修改如下行:

server-id = 2

注:可用 show variables like 'server_id'; 查看 server_id 设置是否正确

(2)修改配置文件/etc/my.cnf,启用中继日志,关闭二进制日志(如果启用了二进制日志就把配置文件里的注释或删掉)

relay-log = /usr/local/mysql/relaylogs/relay-bin

重启数据库服务,确定一下中继日志是否已开启。

SHOW GLOBAL  VARIABLES LIKE 'relay_log';

MariaDB 主从复制的配置

(3)连接Master服务器

CHANGE MASTER TO MASTER_USER='test', MASTER_HOST='10.10.3.211', MASTER_PASSWORD='';
CHANGE MASTER TO MASTER_USER='test', MASTER_HOST='10.10.3.211', MASTER_PASSWORD='',MASTER_LOG_FILE = 'mysql-bin.000129',MASTER_LOG_POS = 720905150;

(4)启动复制线程:

START SLAVE;

查看一下状态

SHOW SLAVE STATUS\G

MariaDB 主从复制的配置

(5)测试在Master上创建一个数据库,看Slave上有没有同步过来。

在测试过程中发现,如果在Slave上直接修改一条数据,Master上再去对该条数据进行修改就无法同步到Slave。

3、其他配置

#要复制的数据库
replicate-do-db = xsmart_drmp
#不复制的数据库
replicate-ignore-db = mysql
replicate-ignore-db = performance_schema
replicate-ignore-db = information_schema
#要复制的表
replicate-wild-do-table = xsmart_drmp.drmp_historyrecordsecond% (可用通配符%匹配)
#不复制的表
#replicate-wild-ignore-table =