1:修改主服務器配置
log-bin=mysql-bin //開啓日誌
binlog_format=mixed //這裏使用mixed,保證從服務器也一樣的格式
server-id=1 //這個id不能跟從服務器重複
binlog-do-db = test1,test2 //需要記錄log的數據庫名(默認所有的,這個參數設置會直接影響到bin-log的記錄,沒在裏面的數據庫是不會有bin-log的,如果需要記錄bin-log 但不需要同步到從數據庫可以在從數據庫設置參數,看下面)
binlog-ignore-db = test1,test2 //不需要記錄的數據庫名(默認所有的)
-----------------------搞完記得重啓數據庫--------------------------------------------
2:修改主服務器配置
log-bin=mysql-bin //開啓日誌
binlog_format=mixed //這裏使用mixed,保證跟主服務器一樣的格式
server-id=101 //這個id不能跟主服務器重複
replicate-do-db=test //需要同步的數據庫,多個,號隔開或者重複設置(默認所有的都複製)
replicate-ignore-db=db1,db2 //這個是不需要複製的
-----------------------------搞完記得重啓數據庫-------------------------------------------
3:在主服務器上爲從服務器分配一個賬號給從服務器連接
執行sql: GRANT replication slave ON *.* TO 'slave'@'39.97.99.%' IDENTIFIED BY '111111'; (需要root 賬戶)
參數解析
replication slave : 權限爲複製
*.*" : 可以操作的庫表(這裏默認*.*就好,需要同步哪些庫直接在從庫裏設置)
'slave' : 從庫登錄用戶名,可以修改
@'39.97.99.%' : 代表連接的服務器是 39.97.99.*,需要匹配所有的直接用@'%'即可
'111111' : 密碼
分配完後可以在從服務器測試能否連接上主數據庫
執行shell: mysql -uslave -p111111 -h39.97.99.55
能連接上就ok,連接失敗檢查端口 跟防火牆,安全組等
4:查看主庫狀態,獲取當前bin-log 信息,5.2配置需要用到
執行sql: show MASTER status
file Position Binlog_Do_Db Binlog_Ignore_Db
mysql-bin.000016 310 test1,test2
記下 bin-log 跟對應的Position
5:同步整個數據庫到從數據庫,這裏最好先停止主庫寫入,等主從測試ok 了在開啓,同步完成後配置從庫
1:停止從庫服務
執行sql:
stop slave; (有些數據庫是 slave stop;)
2:配置關聯主庫
執行sql:
change master to master_host=‘39.106.177.55’,master_port=3306,master_user=‘slave’, master_password=‘111111’,master_log_file=‘mysql-bin.000016’,master_log_pos=310;
3:開啓服務
sql:
start slave; (有些庫是slave start)
查看slave 狀態
sql:
show slave status
最後測試數據,看是否會同步數據
注意:
mysql 主從是通過bin-log 同步數據,中間有可能數據丟失,某些關聯數據丟失可能導致從庫後面一系列sql 執行失敗!