mysql主从复制

     外网数据库为主,内网数据库为从。首先确保主数据库所在的服务器防火墙打开。

     如果数据库在做主从的时候已经有数据了则需要进行锁表操作.

              mysql> flush tables with read lock;

     记住数据导完后要解锁:

            mysql> unloclk tables;

     一.配置主数据库master 

     1.配置master主数据库

[mysqld]

server-id       = 1 //分配server-id

log-bin         = master-bin //默认mysql-bin,可以不修改

    2.在master建立同步帐号:

  grant replication client,replication slave on *.* to repl@'218.108.90.94' identified by 'repl' ;

    3.查看binlog日志

show master status;

     查看A的状态,记录下file的位置和postion的参数

二 .配置slave从数据库

   1.配置从数据库

server-id=208
log-bin=mysql-bin   //建议log-bin功能也打开
binlog-format=mixed
relay-log=mysql-relay

 

2. 指向主数据库

先关闭slave  stop slave;

CHANGE MASTER TO MASTER_HOST='server A ip', MASTER_PORT=3306, MASTER_USER='user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;

打开slave :start slave;

查看slave状态:show slave status;

 

ps: 如果要删除slave信息可以

change master to master_host = '';

然后 reset slave;

 

 如果从数据库数显如下错误

Last_IO_Error: Got fatal error 1236 from master when reading data from >> binary log: 'Slave can not handle replication events with the checksum that >> master is configured to log; the first event 'mysql-bin.000001'

这是由于 master 用的 mysql5.6 , binlog_checksum 默认设置的是 crc32。 如果slave用的 5.5 或者更早的版本,请将master的 binglog_checksum设置为 none。


binlog_checksum=none

 

posted @ 2014-10-08 14:42  落尽难寻  阅读(165)  评论(0编辑  收藏  举报