物理机win7,虚拟机为两台centos7系统

实验myslq数据库简单的主从复制:

主节点:192.168.255.2

从节点:192.168.255.3

使用rpm包安装的mariadb-server

配置主节点:

]# vim /etc/my.cnf

]# systemctl start mariadb.service

确保主节点的iptables没有阻断3306端口;

> SHOW GLOBAL VARIABLES LIKE '%log%';

确认二进制日志启动;

查看server id

创建有复制权限的账号:

> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';

> FLUSH PRIVILEGES;

查看二进制日志并记录日志位置:

配置从节点:

]# vim /etc/my.cnf

查看中继日志开启;

查看唯一ID:

在从节点:

使用有复制权限的用户账号连接至主节点,并启动复制线程;

指定二进制日志文件及位置:

> CHANGE MASTER TO MASTER_HOST='192.168.255.2',MASTER_USER='repluser',MA

STER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=499;

启动从节点复制功能:

> START SLAVE;

查看从节点状态信息:

此时,主从复制配置完成;主节点再有任何写操作事务日志记录,都会同步到从节点上并在从节点上replay;

验证主从复制:

例如:在主节点创建库:

创建前主从节点中的库信息都是初始时默认存在的库:

在主节点创建新库:

> CREATE DATABASE mydb;

查看状态信息:

二进制日志中的事务位置发生了变化,此时从节点应该已经发生了同步;

在从节点查看:

查看从节点状态:

此时,还要设置从服务器不能由写操作,因为只有让主节点接受写操作,从节点只负责读请求,所有的写操纵都必须从主节点复制到本地中继日志中replay后完成的:

设置从节点只读:

> SET GLOBAL read_only=ON;

在从节点:

查看文件:

]# cat /var/lib/mysql/master.info

此文件就是为什么能设置开机后自动实现启动复制功能的重要文件;

查看从节点的中继日志文件:

主节点:保证从节点及时得到更新

应该设置此项:

从节点:

relay_log也会在内存中先缓冲,让每一次写出都立即同步到磁盘上,数据安全性提升,但磁盘io压力变大,性能会有所下降;

还要设置如下参数:

演示完成。