MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台NysQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。
Mysql复制过程分为大体分为三个步骤:
master将改变记录到二进制日志
slave将master的二进制日志拷贝到他的中继日志
slave重做中继日志中的事件,将改变应用到自己的数据库中
主库的操作
1修改mysql数据库的配置文件
vim /etc/my.cnf
在[mysqld]下添加以下字段,其中server为唯一不能重
log-bin=mysql-bin
server=1
2重启mysql
systemctl restart mysqld
3登录数据库创建一个replication slave权限的用户
CREATE USER 'user1'@'%' IDENTIFIED BY '123456';
grant replication slave on *.* to 'user1';
4查询Master的状态
show master status
![](https://i-blog.csdnimg.cn/blog_migrate/6ffc155611789b3b0cb12bdb219285f5.png)
之后就别在主库操作了,file position的信心一会会在从库中配置
从库的操作
1修改mysql数据库的配置文件
vim /etc/my.cnf
在[mysqld]下面添加
server-id=2
2重启mysql服务
systemctl restart mysqld
3登录数据库
change master to master_host='主库ip',master_user='user1',master_password='123456',master_log_file='主库最后一步中的file',master_log_pos=439;
start slave;
4查询slaver的状态
show slave status\G
![](https://i-blog.csdnimg.cn/blog_migrate/6935fe9a1838d8b5e2ca6829b7730980.png)
这两个为yes即配置成功