標籤:
MySQL主從複製用於讀寫分離,主庫負責寫,從庫負責讀。這樣無疑會讓資料庫提供更高的並發效能。
配置主從複製後,主庫記錄二進位日誌到本地,從庫讀取主庫的二進位檔案並儲存到本地的中繼記錄檔,然後重做日誌達到同步資料的結果。
主庫配置
1、建立複製使用者
從庫通過此使用者身份在主庫拉二進位日誌。
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO [email protected]‘%‘ IDENTIFIED BY ‘gechong‘;
2、主庫配置
修改my.cnf
server-id=1 #必須有 而且必須唯一log-bin=/var/log/mysql/mysql_bin.log #二進位檔案的路徑binlog-do-db=employees #需要記錄二進位日誌的庫binlog-ignore-db=mysql,information_schema #忽略的庫sync_binlog=1 #即時記錄,防止事務未提交而丟失二進位日誌
備庫配置1、備庫配置
修改my.cnf檔案
server-id=2log-bin=/var/log/mysql/mysql_bin.loglog-slave-updates=1read-only=1 #阻止任何沒有特權許可權的線程修改資料,避免與主庫的資料衝突replicate-do-db=employeesreplicate-ignore-db=mysql,information_schema
2、啟動複製
在mysql中運行
stop slave; --首先關閉change master to master_host=‘IP‘,master_user=‘slave_1‘,master_password=‘123456‘,master_log_file=‘mysql_bin.000006‘,master_log_pos=106;start slave; --啟動
如果slave_io_running和slave_sql_running都是yes,配置成功。
注意事項
關於mysql主從配置的簡單介紹到此。除此之外,關於這個主題還有不少值得注意的關鍵點。
複製的方式
複製的方式分為基於行的 和基於語句的。
基於語句的方式(5.0以及之前的版本支援),因為從庫重做語句有時間差,所以對於時間戳記會有誤差。
基於行的方式會將實際資料記錄到二進位檔案,克服了以上類似的弊端。
主庫和從庫資料衝突
從庫主要是用作讀取資料,與主庫同步。如果隨意修改從庫,很可能造成資料的衝突和不一致。
在從庫中配置 read_only=1 能有效避免。
資料庫崩潰造成事件丟失
sync_binlog=1
該配置作用是,mysql每次提交事務前會將二進位日誌同步到磁碟,防止資料庫崩潰造成丟失。
總結
除了一主一從之外,還能允許一主多從的結構。這樣無疑對與少量寫大量讀的系統十分有用。
1)災難恢複,將一台從伺服器部署到遠端,能防火防震防盜防水災。
MySQL主從複製配置