一、下载安装,在mysql主和从上面安装

    1、下载mysql

        cd /usr/local/src

        wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz

        tar -zxvf mysql-5.6.14.tar.gz

        cd mysql-5.6.14

        yum -y install make gcc-c++ cmake bison-devel ncurses-devel

        cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6 -DMYSQL_DATADIR=/data/mysql5.6/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

        

        make && make install

        

二、创建数据目录配置文件

    1、初始化工作

        mkdir -p /data/mysql5.6/data

        useradd mysql -s /sbin/nologin

        passwd mysql

        chown -R mysql.mysql /data/mysql5.6

        cd /usr/local/mysql.5.6/

        cp support-files/my-default.cnf /etc/my.cnf

        cp support-files/mysql.server /etc/init.d/mysqld

        ln -s ./bin* /usr/local/bin

        ./scripts/mysql_install_db --basedir=/usr/local/mysql5.6/ --datadir=/data/mysql5.6/data/ --user=mysql


三、mysql主配置

    1、配置文件

        shell>vim /etc/my.cnf

                  

        server-id = 1                    #一定不能和slave上的server-id相同,必须唯一

        log-bin=master-bin.log

        sync_binlog=1

        innodb_buffer_pool_size = 5600M

        innodb_flush_log_at_trx_commit=1

        sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO

        lower_case_table_names=1

        log_bin_trust_function_creators=1

        binlog_format = row

        slave_parallel_workers=4          #--开启基于库的多线程复制默认0不开启 

        binlog_cache_size = 8M

        max_binlog_size = 50M

        max_binlog_cache_size = 100M

        expire_logs_days = 1

        log-slave-updates=true

        rpl_semi_sync_master_enabled=ON

        service mysqld start

        

    2、设置主从用户


        mysql -uroot -p

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

        show master status;             #记录master上的logfile  和position


四、mysql从设置

    1、配置文件

        

        server-id = 2                    #一定不能和master上的server-id相同

        log-bin = slave-bin.log

        sync_binlog = 1

        innodb_buffer_pool_size = 512M

        innodb_flush_log_at_trx_commit = 1

            sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO

        lower_case_table_names = 1

        log_bin_trust_function_creators = 1

        binlog_format = row

        binlog_cache_size = 8M

        max_binlog_size = 50M

        max_binlog_cache_size = 100M

        expire_logs_days = 1

        slave_parallel_workers=4

        max_relay_log_size = 50M

        relay_log_purge = 1

        relay_log_recovery = 1

        master_verify_checksum = 1        #--主事件校验 

        slave_sql_verify_checksum = 1     #--从事件校验 

        slave_allow_batching = 1

        log-slave-updates=true

        service mysqld start

 

    2、开启从库同步线程

        mysql -uroot -p

        change master to master_host='192.168.10.1',master_user='repl',master_password='repl',master_log_file='slave-bin.000003',master_log_pos=5569;

        start slave;

        show slave status\G;

        #Slave_IO_Running: Yes

        #Slave_SQL_Running: Yes

        上面输出两项均为yes则正常


五、配置mysql 主服务器半同步

    1、修改配置文件加入参数

        rpl_semi_sync_master_enabled=ON


    2、进入mysql命令行安装半同步插件

        INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

        show global viriables like 'rpl_semi_%'

        

        

        +------------------------------------+-------+

        | Variable_name                      | Value |

        +------------------------------------+-------+

        | rpl_semi_sync_master_enabled       | ON    |

        | rpl_semi_sync_master_timeout       | 10000 |

        | rpl_semi_sync_master_trace_level   | 32    |

        | rpl_semi_sync_master_wait_no_slave | ON    |

        +------------------------------------+-------+

        

        #rpl_semi_sync_master_enabled 为ON则安装成功

        重启mysql master

        servive mysqld restart


六、配置mysql 从服务器半同步

    1、修改配置文件加入参数

        rpl_semi_sync_slave_enabled=ON


    2、进入mysql命令行安装半同步插件

        INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

        show globle viriables like 'rpl_semi_%'


         #rpl_semi_sync_slave_enabled 为ON则安装成功

        +---------------------------------+-------+

        | Variable_name                   | Value |

        +---------------------------------+-------+

        | rpl_semi_sync_slave_enabled     | ON    |

        | rpl_semi_sync_slave_trace_level | 32    |

        +---------------------------------+-------+

        

完成。