mysql復制
一主一從
座雙機熱備
1.log-bin必須是打開的
進入
mysql查看 狀態,如果時候ON表示是開啟,OFF表示關閉
show variables like '%log_bin%';
2.設置log-bin為ON,注意mysql主機或備機都有兩個my.cnf需要設置
路徑1:/opt/rh/mysql55/root/etc/my.cnf 安裝路徑,優先級高于/etc/my.cnf
路徑2:/etc/my.cnf
主機master
設置my.cnf
[mysqld]
log-bin=mysql-bin //[必須]啟用二進制日志
server-id=23 //[必須]
服務器唯一ID,默認是1,一般取IP最后一段
重啟服務
service mysql55-mysqld restart
設置備機訪問的權限
-- REPLICATION SLAVE這是全局復制,該權限(REPLICATION SLAVE)是一個全局權限
--涉及到時通過外部zxlh賬戶進行數據的修改,給zxlh賬戶實時備份的權限
GRANT REPLICATION SLAVE ON *.* TO zxlh@'10.50.28.24' IDENTIFIED BY 'zxlh';
無法定位問題時,查看var/log/mysql55-mysqld.log,錯誤日志在這個文件
查看主機是否設置完成
show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 308 |
備機
設置my.cnf
[mysqld]
log-bin=mysql-bin //[必須]啟用二進制日志
server-id=24 //[必須]服務器唯一ID,默認是1,一般取IP最后一段
備機
change master to master_host='10.50.28.23',master_user='zxlh',master_password='zxlh',master_log_file='mysql_bin.000011',master_log_pos=11137524
change master to master_host='10.50.28.23',master_user='zxlh',master_password='zxlh',master_log_file='mysql_bin.000025',master_log_pos=27133152;
change master to master_host='10.50.30.35',master_user='zxlh',master_password='zxlh223456',master_log_file='mysql-bin.000023',master_log_pos=499382400;
start slave; //啟動從服務器復制功能
查看備機狀態
show slave status\G
Slave_IO_Running: Yes //此狀態必須YES
Slave_SQL_Running: Yes //此狀態必須YES
注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態,否則都是錯誤的狀態(如:其中一個NO均屬錯誤)。
以上操作過程,主從服務器配置完成
show master status\G
清除2015-05-22之前的日志
purge master logs before '2015-05-22 00:00:00'
查看日志
show master logs
PS:從庫中最好不要加會更改數據的觸發器,會導致重復更改數據