MySQL主从复制
实现原理
mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器
mysql复制基于主服务器在二进制日志总跟踪所有对数据库的更改(更新、删除等)
每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新(比如主服务器插入一条记录,从服务器监听到主服务器二进制日志的新增日志就会在从服务器中执行)
实现步骤
master将改变记录到二进制日志(binary log)中
slave将master的binary log events 拷贝到它的中继日志(relay log)
slave重做中继日志中的事件, 将改变反映它的数据
配置主从
vim /etc/my.cnf
开启log-bin=mysql-bin
修改server-id = 112 (唯一的,随便设置个值, 不和其他的重复即可)
ls -l /usr/local/mysql/var/ 可以看到mysql-bin的二进制文件
mysql> show master status; 可以查看master状态 (当前使用的binlog是000012, 位置是107)
mysql> reset master; 可以重置master
开启从机
vim /etc/my.cnf 开启中继日志修改配置如下
主机中给从机授权
grant replication slave on *.* to [email protected] identified by '123123';
这句话是我允许slave用户在192.168.8.113的服务器上通过密码123456访问当前的master
*.* 是所有库的所有表
在从机中ping一下主机,检测网络是否连通
进入mysql
mysql> stop slave;
相关信息在master中使用 show master status 查看
查看从机的状态
mysql> show slave status\G
这两项为yes说明配置成功
开启slave mysql> start slave;