MySQL主从复制搭建

1.为什么开启主从复制?

  随着互联中业务访问量的发展,如果是单机部署数据库,就会导致I/O访问频率过高,为了让数据库高可用,采用数据库读写分离架构。

2.主从复制原理

  MySQL数据库服务器主(master)节点复制到一个或多个从(slave)节点。MySQL 默认采用异步复制且串行话的方式

复制主要为三步骤:

1.Master将Data changes记录到二进制日志Binary log。

2.Slave从Master的Binary log拷贝Data changes到自身的中继日志relay log。

3.Slave将Data changes应用到自身数据库中。 

3.搭建一主一从复制步骤

 3.1 准备工作

  安装windows版数据库(192.168.1.102),安装linux版数据库(192.168.1.107),最好两个版本都是一致的。关闭windows防火墙,linux防火墙,然后双向ping通。

 3.2 修改主机windows配置my.ini

  在mysqld下增加

  server-id=1 //唯一id标识

       read-only=0 //读写都可以

  启用二进制日志

  log-bin=自己本地mysql路径/mysqlbin

  log-err=自己本地mysql路径/mysqlerr

  log-bin=E:/Program Files/MySQL/MySQL Server 5.5/data/mysqlbin
  log-err=E:/Program Files/MySQL/MySQL Server 5.5/data/mysqlerr

  binlog-ignore-db=mysql //不需要复制的库

  binlog-do-db=db_master_to_slave //需要复制的库

  3.3 修改从机linux配置my.cnf

  vi /etc/my.cnf在mysqld下增加

  server-id=2 //唯一id标识

  3.4 主机建立账户并授权给从机

  GRANT REPLICATION SLAVE ON *.* TO 账户名@从机ip IDENTIFIED BY 'password';

  GRANT REPLICATION SLAVE ON *.* TO root@192.168.1.107 IDENTIFIED BY 'root';

  FLUSH PRIVILEGES;

  主机查询:

  SHOW MASTER STATUS;

 

  

File             Position  Binlog_Do_DB        Binlog_Ignore_DB  
---------------  --------  ------------------  ------------------
mysqlbin.000001       257  db_master_to_slave  mysql  

  从机配置

CHANGE MASTER TO 
MASTER_HOST='192.168.1.102',
MASTER_USER='root',
MASTER_PASSWORD='root',
MASTER_LOG_FILE='mysqlbin.000001',
MASTER_LOG_POS=257;

  从机start

  start slave;

   show slave status\G

 

目前搭建是完成了,来试试主机master插入一条数据,看看slave是否能复制。

  4 测试主从复制

  master 插入一条数据

  slave查询是否将id为3的master插入了test表;

  

 

  5 关闭主从复制

  stop slave;

 

posted @ 2019-05-03 12:27  缘故为何  阅读(252)  评论(0编辑  收藏  举报