mysql主从同步

一,mysql主从同步的原理

主机器开启bin-log日志,将bin-log日志同步到从机器上,从机器根据bin-log日志转换为relay-log,从机器的sql线程根据relay-log进行数据的更新。

 

二,搭建mysql主从同步前的环境说明:

1,建议2台机器的mysql版本一致,或者从的版本要高于主的版本。

2,关闭selinux。

3,保证2台机器的数据一致性,如果不一致建议使用rsync进行数据的同步。

4,192.168.2.66为主mysql  192.168.2.69为从mysql。

三,搭建异步的mysql主从同步(即不是在一台机器上的)

1,分别在2台机器上安装mysql,具体安装方法如链接:http://www.cnblogs.com/lin1/p/5645761.html

2,在主机器上操作:

2.1  开启binlog日志,设置server-id,重启mysqld服务。 具体如下:

     vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=1  //[必须]服务器唯一ID,默认是1。

/etc/init.d/mysqld restart

2.2 建立账号并授权给slave。

grant replication slave on *.* to 'repl'@'192.168.2.69' identified by 'lin';

2.3,刷新权限,并锁表。

flush privileges;

flush tables with read lock;

2.4,查看master状态。

show master status;

这里标记的后面需要用到,所以,请记住。

3,在从机器上操作;

3.1 修改server_id ,但这里的server_id一定不能和主的mysql一致,这里我写的是2。这里的bin-log日志可以不用开启,重启服务。

3.2 停止slave(暂停同步)。 stop slave

3.3 连接主mysql

change master to master_host='192.168.2.66', master_port=3306, master_user='repl', master_password='lin', master_log_file='mysql-bin.000001', master_log_pos=624;   这里就用到show master status的值。

3.4,启动slave。start slave(启动同步).

3.5,  查看从的状态。

 show slave status\G;

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!

3.6 配置成功后们不要忘记回到主上取消锁表。

unlock tables;

 

 三,测试主从。

在主上创建一个库,库里面创建一个表,然后在从上面查看是否多出一个库和表。如果从上也多出相对应的库和表,说明主从测试OK。

 
附上主从同步的原理图:

 

MASTER: binlog-do-db, binlog-ignore-db                  //指定同步和不同步那些库
SLAVE: replicate-do-db, and replicate-ignore-db //指定同步和不同步那些库

 

posted @ 2016-07-20 23:49  某电商首席日志工程师  阅读(307)  评论(1编辑  收藏  举报