1.编译安装

wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.2-m5.tar.gz
tar xvzf mysql-5.6.2-m5.tar.gz 
cd mysql-5.6.2-m5
CFLAGS="-O3 -g"
CXX=gcc
        CXXFLAGS="-O3 -g -felide-constructors -fno-exceptions -fno-rtti"
export CFLAGS CXX CXXFLAGS
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1   -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_FEDERATED_STORAGE_ENGINE=1  -DWITH_PARTITION_STORAGE_ENGINE=1  
make
make install
chmod +w /usr/local/webserver/mysql
chown -R mysql:mysql /usr/local/webserver/mysql
cd ../
 
 创建数据表
mkdir -p /data0/mysql/data/
chown -R mysql:mysql /data0/mysql/
cd /usr/local/webserver/mysql
scripts/mysql_install_db --datadir=/data0/mysql/data --user=mysql
 其他安装配置步骤不再赘述。
 
 
2.配置M/S
迁移到Semisynchronous Replication模式:
在master和slave端安装插件
M>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
S>INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
M>SET GLOBAL rpl_semi_sync_master_enabled = on;
S>SET GLOBAL rpl_semi_sync_slave_enabled = on;
如下请填写自己对应的mysql信息。
S>change master to master_host='192.168.8.43',master_port=3309,master_user='repl',master_password='repl',master_log_file='binlog.000043',master_log_pos=114;
S>STOP SLAVE IO_THREAD;
S>START SLAVE IO_THREAD;
查看Semisynchronous Replication是否运行和有多少slave是以Semisynchronous模式连接master:
M>SHOW STATUS LIKE 'Repl_semi_sync_master_STATUS';
M>SHOW STATUS LIKE 'Repl_semi_sync_master_clients';
确认复制运行在Semisynchronous模式下
M>SHOW STATUS LIKE 'Repl_semi_sync_master_yes_tx';
 
 备注说明:数据目录下会自动生成一个auto.cnf文件,内容如下
[auto]
server-uuid=f2ac6356-adcb-11e0-a028-00105cf2e90c
记录这当前server的uuid,这个文件是在mysql第一次启动时自动生成的。我经过测试发现,从库的server-uuid可以相同,但是不可以与主库的相同。
这就要注意一点,当用copy 方式快速搭建新从库时不仅仅要修改my.cnf中的server-id还要手动修改新库的auto.cnf文件,防止某个slave升级为master时server-uuid冲突。
 
3.show slave status\G
多了几个选项
             Master_Server_Id: 433309
                  Master_UUID: 713e5bf4-adca-11e0-a01f-00105cf2e90c    #主库的server_uuid 值
             Master_Info_File: /data0/mysql/3312/data/master.info      
                    SQL_Delay: 0                                      
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: end
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
 
 
4.my.cnf中的新参数
master-info-repository = FILE|TABLE
relay-log-info-repository = FILE|TABLE
FILE选项设定服务器记录master.info和relay-log.info的文件形式。
如: Master_Info_File: /data0/mysql/3310/data/master.info   (show slave status\G)
TABLE选项设定会将master和relay-log信息都记录到mysql的slave_master_info和slave_relay_log_info 表中
如:  Master_Info_File: mysql.slave_master_info  (show slave status\G)