一 master节点
- 关闭两个节点的防火墙
systemctl stop firewalld.service
- 修改master的配置文件(/etc/my.cnf),添加如下内容:
#mysql 服务ID,保证整个集群环境中唯一
server-id=1
#mysql binlog 日志的存储路径和文件名
log-bin=/var/lib/mysql/mysqlbin
#是否只读,1 代表只读, 0 代表读写
read-only=0
#忽略的数据, 指不需要同步的数据库
binlog-ignore-db=mysql
- 重启mysql服务
systemctl restart mysqld
- 进入mysql,创建同步数据账户,并授权
# 修改密码复杂度,此版本特殊需求,否则不能设置简短密码
set global validate_password_policy=LOW;
set global validate_password_length=5;
grant replication slave on *.* to 'slave'@'192.168.44.128' identified by 'slave';
flush privileges;
- 查看master状态
show master status;
# File : 从哪个日志文件开始推送日志文件
# Position : 从哪个位置开始推送日志
# Binlog_Ignore_DB : 指定不需要同步的数据库
image-20201229171907434.png
二 Slave节点
-
使用vmvare的虚拟机拷贝方式,复制一台虚拟机作为从节点。具体虚拟机拷贝的设置可参考虚拟机拷贝的技术文档
-
使用mysql自带的函数生成一个UUID
select uuid();
- 修改auto.cnf文件中的uuid (由于是通过虚拟机拷贝的,故两台虚拟机的mysql拥有相同的uuid,无法实现主从复制,需要修改) (/var/lib/mysql/auto.cnf)
- 修改slave的配置文件(/etc/my.cnf),添加如下内容:
#mysql服务端ID,唯一
server-id=2
#指定binlog日志
log-bin=/var/lib/mysql/mysqlbin
- 重启mysql服务
systemctl restart mysqld
- 进入mysql,指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志
change master to master_host= '192.168.44.142', master_user='slave',
master_password='slave', master_log_file='mysqlbin.000001', master_log_pos=595;
- 开启同步
start slave;
show slave status;
image-20201229172727043.png
- 停止同步
stop slave;
三 检验是否成功
- 在主节点创建一个数据库
create database db01;
- 在从节点查看
show databases;
网友评论