原理: 主节点将写入类型操作行为写入到二进制日志(binlog) 从节点IO线程
监听主节点的二进制日志,将新增的日志数据读取出来写入到它自己的中继日志
从节点还原日志中的行为,通过SQL线程,将其中数据写入到从节点的库表中
1.主节点/从节点安装mysql
(-)移除原有Mariadb
yum -y remove mysql-libs
(-)解压安装
tar -xvf mysql.tar
yum -y install libaio
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
(-)启动并登录mysql
systemctl start mysqld
cat /var/log/mysqld.log | grep password #获取随机密码
mysql -uroot -p'获取的密码'
alter user 'root'@'localhost' identified by 'Welcome_1';
grant all privileges on *.* to 'root'@'%' identified by 'Welcome_1';
exit;
2.修改主节点的my.cnf 开启日志
cat /etc/my.cnf
server-id=102
log-bin=/var/lib/mysql/mysql-bin
systemctl restart mysqld #重启服务生效日志
3.登录mysql,创建从节点可以访问的账户
mysql -uroot -p'Welcome_1'
create user 'rep' identified by 'Welcome_1';
grant all privileges on *.* to 'rep'@'192.168.100.%' identified by 'Welcome_1';
flush privileges;
4.查看主库状态信息
show master status;#记录File字段,这里为mysql-bin.000001
5.修改从节点的my.cnf
cat /etc/my.cnf
server-id=103
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin #开启中继日志
6.重启mysql生效配置文件
systemctl restart mysqld
7.将从节点加入mysql集群
#登录从节点的mysql
mysql -uroot -p'Welcome_1'
stop slave;
change master to master_host='liberty-centos7-instance-01',master_user='rep',master_password='Welcome_1',master_log_file='mysql-bin.000001', master_log_pos=0; #将msql加入新的主节点
start slave;
8.查看从节点的状态信息
show slave status\G;
检查 IO_RUNNGING / SQL_RUNNING 是否均为YES,如是MYSQL同步部署完成
9.测试同步情况
使用navicat连接主节点的mysql(用root登录)
创建库MyDB,并创建表tbl_userinfo,插入数据
使用navicat连接从节点的mysql(用root登录)
查看是否有相同的库表以及数据