原理:
- 主机对数据进行修改会记录到二进制文件bin_Log中
- 从机启动i/o线程读取主机的bin_log
- 紧接着从机使用sql线程读bin_log 转换为sql执行语句,再对从机上的数据进行修改
MYSQL的主要优点:
- 数据更安全:做了数据冗余,不会因单台服务器的宕机而丢失数据
- 性能大大提升:一主多从,不同用户从不同数据库读取,性能提升
- 扩展性更优:流量增大时,可以方便地增加从服务器,不影响系统使用
- 负载均衡:一主多从相当于分担了主机任务,做了负载均衡
MYSQL的操作流程
1.关闭防火墙(主从服务器)
systemctl stop firewalld
setenforce 0
2.编辑配置文件(/etc/my.cnf)
添加以下文件
log-bin=mysql-bin-master #启用二进制日志
server-id=1 #本机数据库ID 标示(自己随便添加,唯一值,主从服务器不能相同)
binlog-do-db=HA #可以被从服务器复制的库,二进制需要同步的数据库名(主从服务器需保存一致)
binlog-ignore-db=mysql #不可以被从服务器复制的库
3.登陆MYSQL,创建用户再授权及同步数据库(主从服务器都需要此操作)
create database HA;
CREATE USER '用户'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
GRANT REPLICATION SLAVE ON *.* TO '用户·'@'%';
flush privileges;
4.查看主机状态
show master status;
5,从机指定主服务器
stop slave;
change master to master_host=’主机ip’,
master_user='用户',
master_password='密码',
master_log_file='主机File',
master_log_pos=主机Position;
6.查看从机是否同步
show slave status\G;
7.主从测试
主机在同步数据库创建表格,从机能够查看到表格,则同步成功。