這是本文件的舊版!
Replication 主要是由Master Server 將寫入的事件(新增,刪除及修改) 記錄在Master Binary Log中,Slave 由(I/O threads) 再讀取Master Binary Log 相關SQL語句 ,送到Slave Relay Log(中繼日誌檔)暫時存放,再由Slave (SQL threads)讀取 Relay Log 來重新執行 SQL相關語句。
基本上以下所列的都是 非同步(asynchronous,異步) replication
*Slave 版本要比Master新 (因為 當新版本Slave 在讀取 舊版本Master binlog時,除了新的特性或與語法外,還能相容於舊版本相關格式或過時的語法)
假定以下LAB環境狀況:
vim /etc/my.cnf
~略~ server-id=1 log-bin=mysql-bin(二進制日誌) ~略
要給Slave一個帳號可以存取Master
GRANT RELOAD, SUPER, REPLICATION SLAVE ON *.* TO 'backup171'@'192.168.0.171' IDENTIFIED BY 'qwedcxza'
server-id = 2 #不要與Master值一樣就好了 relay-log=mysql-relay-bin #中繼日誌 log-slave-updates=1 #指定更新紀錄到slave binlog read-only=1 #只允許來自從服務器線程或具有SUPER權限的用戶的更新。可以確保從服務器不接受來自客戶的更新 master-port=3306 #指定要與Master 連接的阜口 replicate-do-db=zabbix2 #指定要與Master 哪個資料庫複寫 master-user=backup171 #Slave連接Master的帳號 master-password=qwedcxza #Slave連接Master的密碼 master-connect-retry=60 #複製從I/O線程 狀態下,與Master無法連接或連接錯誤,指定多少秒後再重新連接Master
change master to master_host='192.168.0.170', ->master_user='backup171', ->master_password='qwedcxza', ->master_log_file='mysql-bin.000008', ->master_log_pos=176146;
#