主庫:[mysqld] 下面
主從通過這個id溝通,主從配置id不能相同
server-id = 1
同步數據庫名稱
binlog-do-db=kdmer
主執行sql, 允許從庫ip同步。
grant replication slave on *.* to '從庫用戶名例如:guanliyuan'@'從庫ip:123.2.2.2' identified by '從庫連接密碼:123456';
#刷新生效
FLUSH PRIVILEGES;
# 查看你主庫狀態以便復制你的日志文件名稱
show master status;
從庫配置:
指定slave要復制哪個庫, 注意必須和主庫名字一致
replicate-do-db = kdmerp
跳過錯誤類型
slave-skip-errors=1146
server-id = 2
從庫執行命令
change master to master_host='主庫ip:123.3.3.3',master_user='你上面命令的用戶名',master_password='上面嗎的密碼:123456',master_log_file='上面的日志名',master_log_pos=2;
#啟動
start slave;
#停止
stop slave;
#查看查看slave的狀態, 這個很重要, 查看錯誤日志以修改調試
show slave status\G;
注意主從同步前,從庫必須和主庫保持數據一致。
然后主庫做任何操作,包括建表,改表結構,增刪改查數據,從庫都會同步修改。
最后根據你 show slave status 錯誤狀態去調試通過。日志報的比較詳細。
image.png