实验环境:

    两台MariaDB服务器,IP分别为: 172.16.2.16 和 172.16.2.17

    MariaDB的版本是5.5.36,使用二进制方式安装。已安装完成。

    /mydata/data  数据库文件存放目录

    /mydata/binlog/ 二进制日志文件存放位置

    /mydata/relaylog/ 中继日志存放位置

实验目地:

    把两台服务器搭建为两主模型工作。

实验操作过程:

172.16.2.16的配置过程

/etc/my.cnf配置文件[mysqld]段如下

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
auto-increment-increment = 2                设置自动增长的每次增进值,此服务器的增长值为奇数
auto-increment-offset = 1              设置自动增长值的初始值
log-bin=/mydata/binlog/mysql-bin       修改二进制日志文件存放位置
relay-log=/mydata/relaylog/relay-log    中继日志存入位置
binlog_format=mixed
server-id= 1                      这里使用默认的server-id
datadir=/mydata/data              设定数据库存放的目录
sync_binlog = 1           设定二进制日志工作特性为实时把日志写入二进制日志文件

为对方节点授权

MariaDB [(none)]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slaveuser@'172.16.2.17' IDENTIFIED BY 'slavepass';
MariaDB [(none)]> FLUSH PRIVILEGES;


172.16.2.17节点配置信息

/etc/my.cnf配置文件[mysqld]段如下

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
log-bin=/mydata/binlog/mysql-bin
relay-log=/mydata/relaylog/relay-log
binlog_format=mixed
server-id= 2                        这里server-id为2
datadir=/mydata/data
auto-increment-increment = 2
auto-increment-offset = 2

为对方节点授权

MariaDB [(none)]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slaveuser@'172.16.2.16' IDENTIFIED BY 'slavepass';
MariaDB [(none)]> FLUSH PRIVILEGES;

    

在双方节点分别连接对方节点,在连接对方前,需要知道对方当前使用的二进制日志文件及文件中事务的位置

在节点一查看当前二进制日志信息,得到使用的日志文件为  mysql-bin.000012  ,最新的事件ID是 676  

MariaDB [(none)]> SHOW MASTER STATUS; [object Object]

在第二个节点连接第一个节点

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.2.16', MASTER_USER='slaveuser',MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=676;
MariaDB [(none)]> START SLAVE;

在节点一查看当前二进制日志信息,得到使用的日志文件为  mysql-bin.000006 ,最新的事件ID是 245

MariaDB [(none)]> SHOW MASTER STATUS;

wKioL1Qa_MaRwep9AACVhy_r-k0841.jpg

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.2.17', MASTER_USER='slaveuser',MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=245;
MariaDB [(none)]> START SLAVE;

配置完成后测试:

    1,在第一个节点上创建数据库,然后到第二个节点查看,如果有说明复制成功。

    2,在第二个节点上为第一个节点创建的数据库创建表,在第一个节点查看,如果有说明双向复制没有问题。