Mysql主从复制 -- 一主一备
主从复制原理:
Mysql的主从复制是mysql本身自带的一个功能,不需要额外的第三方软件可以实现,其复制功能并不是copy文件实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为在master端执行一条sql命令,slave端同样会执行一遍,从而达到主从复制的效果。
从库生成两个线程,一个是IO线程,一个是SQL线程:
IO线程请求主库 的binlog,并将binlog日志写到replay log(中继日志)中
,主库会生成一个log dump线程,用来给从库IO线程传binlog
SQL线程会读取relay log文件中的日志,并解析具体操作,来实现主从的操作一直,而最终数据一致。
主服务器节点:
vi /etc/my.conf 新增以下内容
server_id=177 ### 服务器id
log-bin=mysql-bin ###开启日志文件
重启mysql服务 service mysqld restart
验证是否配置成功
show variables like ‘%server_id%’
能够查询对应的配置文件中的server_id说明已经配置成功
show master status
能够看到同步的文件和行数,说明已经配置成功
从服务器节点:
vi /etc/my.conf 新增以下内容
server_id=177 ### 服务器id
log-bin=mysql-bin ###开启日志文件
binlog do_db=test ## 同步数据库
重启mysql服务: service mysqld restart
验证是否配置成功
show variables like ‘%server_id%’
能够查询对应的配置文件中的server_id说明已经配置成功
从服务器通过主服务器配置:
change master to master_host=’192.168.212.200’,master_user=’root’,master_passeord=’root’,master_log_file=’mysql-bin.000002’,master_log_pos=216;
开始同步
start slave
检查从服务器复制功能状态:
show slave status