系統:Ubuntu 16.04.4 LTShtml
Mysql版本:5.6.36python
Master:master1565/192.168.15.65mysql
Slave:slave1566/192.168.15.66sql
Master配置:數據庫
1、配置my.conf服務器
[mysqld]
server-id = 100 #服務器的惟一ID號,主從之間不能衝突,默認是1
log-bin = mysql-bin #啓動binlog 日誌功能。也稱事務日誌
binlog-format = mixed #日誌的記錄格式,默認是mixed,推薦也是用這個
2、配置給從庫Slave服務器使用的帳號測試
#建立帳號,我測試環境的從服務器的IP地址就是192.168.15.66,大家本身作的時候根據本身的從服務器IP來寫,
#帳號名也本身按本身的想法來取名ui
CREATE USER 'repl'@'192.168.15.66' IDENTIFIED BY '密碼';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.15.66'; #添加權限
FLUSH PRIVILEGES; #刷新權限,立馬生效
3、查看當前日誌狀態spa
SHOW MASTER STATUS; #查看主服務器的狀態,並記錄 File和Position字段,從服務器要使用到,示例剛截圖
Slave配置:.net
1、配置my.cnf
[mysqld]
server-id = 101 #服務器惟一ID號,不要衝突
log-bin = mysql-bin #啓動binlog日誌功能,也稱事務日誌
binlog-format = mixed #能夠不用配置,由於默認值 就是mixed,在沒有配置log-bin時,這個值並不生效
#從庫的本地事務日誌更新,默認從主庫同步過來的操做記錄並不寫入從庫的本地事務日誌,
#會影響到咱們在從庫上作 事務日誌 備份功能,此處開啓
#若是不會在從庫上作事務日誌備份(增量備份)功能,建議不開啓,減小磁盤IO
log-slave-updates = 1
2、添加主庫信息
這裏的 MASTER_LOG_FILE 和 MASTER_LOG_POS 就是剛主數據庫中查看出來的結果
我測試環境主庫的IP是192.168.15.65
CHANGE MASTER TO
MASTER_HOST='192.168.15.65',MASTER_PORT=63307,MASTER_USER='repl',MASTER_PASSWORD='abc123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=816;
3、啓動從庫複製功能
START SLAVE; #啓動從複製功能
STOP SLAVE; #中止從複製功能的命令
RESET SLAVE; #重置從複製功能的配置,會清除 master.info 和 relay-log.info 兩個文件
4、查看從庫複製功能狀態
SHOW SLAVE STATUS\G #加\G顯示效果好一些,防止列過多,一屏顯示不下時的排序混亂
常見故障
error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
mysql 5.6的複製引入了uuid的概念,各個複製結構中的server_uuid得保證不同,可是查看到直接copy data文件夾後server_uuid是相同的,show variables like '%server_uuid%';
解決方法:
找到data文件夾下的auto.cnf文件,刪除,重啓db自動從新生成auto.cnf文件