博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

mysql5.7 主从同步

Posted on 2017-03-13 22:51  SmarTom  阅读(187)  评论(0编辑  收藏  举报

一:进行bin-log日志配置

 

1设置bin-log日志

    [mysqld]

    log-bin=//路径  #<===红色的加粗的省去

    server-id = 1    #主库

2.检查配置登录数据库

    show variables like "%log_bin%"

    show variables like "%server%"

3.创建账号并赋予权限

    create user 'Tom'@'111.111.111.111' identified by '密码'

    grant replication slave on *.* to Tom@'111.111.111.111';

4.刷新权限:

    flush privileges;

 


 

二:导库操作:

申请锁表(测试环境不用做这一步)

  1. flush tables with read lock;

  2. 拿到位置点:查看状态

    show master status;

  3. 导出数据库

    mysqldump -uroot -p123456 -B -A >/tmp/new.sql

    --all-databases  , -A

    --databases  , -B

  4. 发送数据

    scp all.sql root@111.111.111.111:/tmp

  5. unlock table;    //解锁(测试环境不用做这一步)

     

 


 

三:(从库my.cnf配置)

1.是否进行开启bin-log

   情况1:

        级联同步a->b->c那中间的B就要开始log-bin。

    情况2:

        全备的情况-> 在从库做数据备份,数据库备份必须要有全备和binlog日志,才是完整的备份

2.server-id=3 #server-id  不要和主库一样

3.重启从库

4.查看状态

    show variables like "%log_bin%"

    show variables like "%server%"

 


 

四:从库进行恢复

mysql -uroot -p123456 < /tmp/new.sql

 


 

五:告诉从库从哪个点进行备份

    change master to master_host='Master地址',

    master_user='Tom',

    master_password='密码',

    master_log_file='mysql-bin.000002', #根据 show master status;

    master_log_pos=3663;                         #根据 show master status;

 


 

六:执行同步开关

从库:

  1. start  slave;

  2. 查看状态

    show slave status;

 


 

正常状态:

Slave_IO_State: Waiting for master to send event

Master_Host: Master主机IP

Master_User: Tom

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000002

        

Slave_IO_Running: Yes

Slave_SQL_Running: Yes