Mysql主从同步

【背景】一台master和一台slave分别部署在不同的服务器上

【环境】Redhat + mysql5.5.18

【步骤】

<Master>

1. 编辑my.cnf文件
     [mysqld]
     log-bin=mysql-bin             # 开启binlog

     server-id=1                      
     binlog-do-db=test              # 需要同步的数据库       
     expire_logs_days=5          # binlog保存的天数
     max_binlog_size=500M    # binlog大小
     log-slave-updates

2. 给slave用户权限同步,首先需要进入master数据库。

    mysql > grant replication slave,file on *.* to root@'%' identified by 'password';

    mysq l> flush privileges;

3. 锁定表

    mysql> flush tables with read lock;

4. 查看主库的状态,里面有些内容在slave配置时需要提供。

     mysql> show master status;

5. 导出库

    /usr/local/mysql/bin/mysqldump --single-transaction --all-databases>/software/master.sql

    或者
    mysqldump -uroot -p -d databasename > createtab.sql(只导表结构)

6. 解锁表

    mysql> unlock tables;

<Slave>

1. 修改slave的my.cnf

    [mysqld]
    server-id=2
    replicate-do-db=test
    log-bin=slave-bin                          #开启salve的binlog

2. 导入之前master上导出的数据

    scp root@192.1698.0.1:/user/local/mysql/bin/software/master.sql .

3. 改为从库,其中master_log_file与master_log_pos从主库状态表中得到。

    mysql > set @@global.max_allowed_packet=11*1024*1024;

    mysql > change master to master_host='10.15.82.174', master_port=3306, master_user='root', master_password='111111', master_log_file='mysql-bin.000007',

master_log_pos=107;

4. 启动slave

    mysql> start slave;

    mysql> show slave status;

 

【注意】Master和Slave上的数据库和表结构必须一样,才能正常同步。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值