一、mysql主从同步(为后面实现读写分离,MMM高可用集群做基础)

  主库配置:主库的IP地址:192.168.4.111

  1、首先给用户授权,用来实现同步时,从库连接主库的用户名:

    grant replication slave on *.* to tongbu@"%"  identified  by  "123456";

  //授权tongbu这个用户在所有的从库上都有复制权限,并设置密码

 2、启用binlog日志:vim /etc/my.cnf

       server_id=111   //指定编号

       log-bin=master111  //指定日志文件名,启用binlog日志

       binlog-format="mixed" //日志类型

 3、重启数据库服务:

4、查看正在使用binlog日志文件:show  master   status\G;

从库配置:从库的IP地址:192.168.4.112

 1、查看自己是否是主从数据库

    show master status;   show slave status;

 2、测试主数据库的授权用户是否有效,看能否登陆

 3、在配置文件里面添加server_id=112,并重启服务

 4、在mysql命令行下,更改配置,配置主库相关信息

       change master to

    -> master_host='192.168.4.111',  //主库的地址

    -> master_user='tongbu',    //连接的用户名

    -> master_password='123456', //密码

    -> master_log_file='111-bin.000001', //日志文件名称

    -> master_log_pos=154; //偏移量

 5、启动从服务:start slave;

 6、show slave status\G  //查看从的状态,确认下面的两行都是yes

       Slave_IO_Running: Yes

       Slave_SQL_Running: Yes

 7、测试同步效果:

 在主服务器上,创建库,表,插入记录,查看从服务器上是否数据一样。

二、关于日志文件的一些信息

 1、几个常见的日志文件 

   112-relay-bin.000006   //中继日志文件

   112-relay-bin.index    //中继日志文件索引

   relay-log.info    //中继日志

   master.info      //主库信息

 2、如何把从库恢复成独立的服务器:

    stop slave;      reset slave all;

 3、关于线程和程序的一些信息

  IO线程:把master库的binlog日志内容记录到本机的relay-binlog日志里

  sql线程:把relay-binlog日志里的sql命令写到本机的库

   show processlist;   Binlog Dump  //查看主上运行的程序,然后可以看到binlog dump程序

  show processlist;   Connect    //可以查看从库上运行的程序

三、主从同步常用参数(/etc/my.cnf)

1、主库:binlog_do_db=数据库名        //只允许同步的库

                binlog_ignore_db=数据库名   //不同步的库

2、从库:开启级联复制(log_slave_updates)主从从结构的第一台从库上配置

            同步个别的数据库(replicate_do_db=数据库名)

            不同步的库(replicate_ignore_db=数据库名)