1.編譯安裝mysql
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)