Mysql主從複製

主從機制實現原理

(1) master將改變記錄到二進制日誌(binary log)中(這些記錄叫作二進制日誌事件,binary log events); 
(2) slave將master的binary log events拷貝到它的中繼日誌(relay log); 
(3) slave重作中繼日誌中的事件,將改變反映它本身的數據。

主庫配置

修改[mysqld]mysql

[mysqld]
server-id=1 -- 給數據庫服務的惟一標識,通常爲你們設置服務器Ip的末尾號
log-bin=mysql-bin --  啓動二進制日誌名稱

查看日誌,File是二進制日誌文件名,Position 是日誌開始的位置。這兩個參數後面要用的到sql

SHOW MASTER STATUS;
show master status;

重啓mysql服務數據庫

主庫中添加帳號使從庫使用服務器

-- 設置賦值權限
grant replication slave on *.* to 'chaoge'@'192.168.178.130';
--檢查受權帳號的權限
show grants for chaoge@'192.168.178.130';

從庫配置

[mysqld]
server-id=3

重啓數據庫測試

systemctl restart mariadb
或者
systemctl restart mysql

檢查Slava從數據庫中的參數spa

show variables like 'log_bin'; --OFF
show variables like 'server_id';

配置賦值參數, Slave從數據庫鏈接Master主庫的配置rest

change master to master_host='192.168.178.129', -- 主庫ip
master_user='chaoge',  -- 主庫用戶
master_password='redhat', -- 主庫密碼
master_log_file='mysql-bin.000001', -- 上面主庫查出來的那個File
master_log_pos=575; -- -- 上面主庫查出來的那個Position

啓動從庫同步開關日誌

start slave;

查看複製狀態code

show slave status\G;

檢查Slave_IO_Running和Slave_SQL_Running兩個參數, 都是yes說明能夠了server

錯誤排查

按照順序通常是遇不到問題的, 我本身在測試中遇到了一個問題是主庫防火牆沒有關, Slave_IO_Running總顯示Connecting

相關文章
相關標籤/搜索