1、原理
1、数据库有个bin-log二进制文件,记录了所有的sql语句
2、我摩恩的目标就是把住数据库的bing-log文件的sql语句复制过来
3、让其在从数据的relay-log重做日志文件中在执行一次这些sql语句即可
4、下面的蛀虫配置就是围绕这个原理配置
- 从库i/o线程去请求主库的binlog,并将得到的binlog日志写到relay log (中继日志)文件中;
- 主库会生成一个log dump线程,用来给从库i/o线程传big log
- 从库的sql线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致
2、实现过程
1、主机配置
首先修改mysql的配置文件,使其支持二进制日志功能
1、修改my.ini 文件,Linux是my.cnf(windos修改另存为编码选择ANSI,否则启动不起来)
# 加入以下代码log-bin=日志存放地址# 服务器IDserver-id=1
2、在主服务器上为从服务器分配一个账号,才能到服务器上来共享主服务器的日志文件
# 数据询执行GRANT replication slave ON *.* TO '用户名'@'从库ip' IDENTIFIED BY '密码';FLUSH PRIVILEGES
3、查看主服务器bin日志的信息
show master status;
2、从机配置
1、修改配置
vim /etc/my.cnf#加入以下内容log-bin=mysql-binserver-id=2# 重启mysqlsystemctl stop mysqld.servicesystemctl start mysqld.service
2、在mysql中执行sql语句
CHANGE MASTER TO MASTER_HOST='主机ip',MASTER_USER='主机分配用户名',MASTER_PASSWORD='主机分配密码',MASTER_LOG_FILE='主机查询file字段',MASTER_LOG_POS=主机查询position字段;
3、开启从服务器
start slave;
4、检查是否配置成功:
show slave status\G;# 当都是yes时配置成功

5、停止服务复制
stop slave;

