MySQL主从同步笔记
一、主从同步原理
1.将主库上面的记录更改保存到二进制日志(Binary Log)里
2.从库获取主库的二进制日志(Binary Log),将日志内容复制到中继日志(Relay Log)里
3.从库重新执行中继日志(Relay Log)里的内容
二、配置主库和从库
1.主库配置
server_id
server_id不能重复,因此我们要先修改server_id为独一无二
查询server_id
show variables like 'server_id';
server_id默认是1,虽然可能不会重复,但还是得明确指定一个server_id,使用默认的server_id可能会导致和其他服务的ID冲突。一种通用的做法是使用服务器ip地址的末8位二进制数,最好让server_id遵循一些有意义的约定。
修改server_id
在配置文件my.conf增加或修改以下内容,并重启数据库
server_id = 20
如果是测试学习,可以不重启,使用以下方法进行修改
set global server_id = 20;
开启binlog日志
2.从库配置
配置主库信息
change master to master_host = '192.168.1.20', -- 主库的ip地址
master_password ='root', -- 主库的密码
master_user ='root', -- 主库的用户名
master_log_file = 'binlog.000002', -- 要读取的主库binlog名称
master_log_pos = 0; -- binlog文件的偏移量,可以通过这个配置绕过部分同步语句
从库同步状态
开启从库同步线程
start slave;
查询从库同步线程
show slave status;
在返回结果Last_Error字段里可以看到同步失败的原因