一、定义:
主数据库产生binlogdump线程,通过此线程将binlog二进制文件发送给从数据库。从数据库产生io线程和sql线程,io进程负责读取binlog内容,复制到本地relaylog里面,sql进程读取relaylog,并且在本地执行此事务
过程:binlogdump线程(主)--->发送binlog到从---(从)io线程读取--->复制为relaylog---(从)sql线程--->读取relaylog,在本地执行
二、主数据库配置:
1.解压安装包:
tar xf mysql-5.7.17-1.el6.x86_64.rpm-bundle.tar
2.安装:
yum install mysql-community-client-5.7.17-1.el6.x86_64.rpm
mysql-community-common-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-compat-5.7.17-1.el6.x86_64.rpm
mysql-community-server-5.7.17-1.el6.x86_64.rpm -y
3.编译数据库配置文件:
vim /etc/my.cnf
server-id=1 数据库中的id号,每个数据库都个不相同
log-bin=mysql-bin 开启二进制日志,并且允许slave同步
gtid_mode=ON 打开gtid
enforce-gtid-consistency=true
4.开启数据库
/etc/init.d/mysqld start
5.查看临时分配的密码
grep password /var/log/mysqld.log
6.数据库安装初始化
mysql_secure_installation 用临时密码,然后更改密码
7.登陆数据库
mysql -p
show master status; 显示主数据库信息
grant replication slave on *.* to repl@'%' identified by 'westosQQ123*';
最后引号里面为数据库密码,自己初始化数据库时设置的。授权slave有同步权限
等待从数据库设置完相关配置,就给主里面添加数据库和表,这样从数据里面就可以同步到从数据库。
cd /var/lib/mysql 数据库信息文件
mysqlbinlog mysql-bin.000003 -vv 查看二进制文件,按照格式显示
三、从数据库
1.解压数据包
tar xf mysql-5.7.17-1.el6.x86_64.rpm-bundle.tar
2.安装
yum install mysql-community-client-5.7.17-1.el6.x86_64.rpm
mysql-community-common-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-compat-5.7.17-1.el6.x86_64.rpm
mysql-community-server-5.7.17-1.el6.x86_64.rpm -y
3.编辑数据库配置文件
vim /etc/my.cnf
server-id=1
gtid_mode=ON
enforce-gtid-consistency=true
4.开启数据库
/etc/init.d/mysqld start
5.查看临时分配的密码
grep password /var/log/mysqld.log
6.数据库安装初始化
mysql_secure_installation
7.登陆数据库
mysql -p
change master to master_host='172.25.39.1',master_user='repl',master_password='westosQQ123*',master_log_file='mysql-bin.0000003',master_log_pos=993;
添加自己的master
后面的文件为主数据产生的文件,用show master status在主数据库查询文件名和端口号。
start slave;
show slave status\G;
从数据库可以同步主数据库的信息。