程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL主從服務器鏈式復制配置(ubuntu)

MySQL主從服務器鏈式復制配置(ubuntu)

編輯:MySQL綜合教程

MySQL主從服務器鏈式復制配置(ubuntu)   服務器結構: A、B、C三台服務器; 其中A為新聞數據源,A為B的Master,B為A的Slave,同時也是C的Master; B服務器從A復制部分數據,C備份A的所有數據;   配置: Master A的配置   sudo vi /etc/mysql/my.cnf   刪除以下參數前的注釋並修改 server-id       = 1 //分配server-id log-bin         = master-bin //默認mysql-bin,可以不修改 log-bin-index   = master-bin.index  //非必須 bind-adress     = 0.0.0.0 //默認127.0.0.1 不修改可能導致無法訪問   修改系統防火牆使B服務器可以訪問3306端口,(詳查ufw命令)   重啟mysql: sudo /init.d/mysql restart   通過語句: GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO user@'ip B' IDENTIFIED BY 'password';   給B服務器建立一個可以連接到A的帳號 進入mysql,通過: show master status; 查看A的狀態,記錄下file的位置和postion的參數 Slave B的配置   sudo vi /etc/mysql/my.cnf   server-id       = 2 log-bin         = slave-bin bind-address    = 0.0.0.0 relay-log-index =  slave-relay-bin.index //非必須 relay-log       = slave-relay-bin   //非必須   添加參數: log-slave-updates = 1    //通常情況,從服務器從主服務器接收到的更新不記入它的二進制日志。 //該選項告訴從服務器將其SQL線程執行的更新記入到從服務器自己的二進制日志。   replicate_wild_do_table = copy_db.copy_table //表示需要復制的庫中的表,可以善用% replicate_wild_ignore_table = ignore_db.ignore_table //不復制的表   至於為什麼不使用replicate_do_db和replicate_ignore_db參數, 是為了方式跨庫更新時出錯,如果能確保不會跨庫更新可考慮   重啟mysql,進入本機mysql   執行以下語句: CHANGE MASTER TO MASTER_HOST='server A ip', MASTER_PORT=3306, MASTER_USER='user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;   //MASTER_LOG_FILE和MASTER_LOG_POS對應A中的file位置和postion參數,表示開始復制的bin文件和位置   start slave;    //啟動Slave show slave status;  //查看Slave_IO_State參數,如果是Waiting for master to send event,則正常 //正常狀態下Slave_IO_Running與Slave_SQL_Running均為yes   //如不能正常鏈接,根據Slave_IO_State,Slave_IO_Running,Slave_SQL_Running,Last_IO_Error //等參數查找失敗原因   通過: show master status; 命令記錄file位置和postion參數;   給C服務器分配一個帳號用於同步; 方法參照A,防火牆設置參照A; Slave C的配置   sudo vi /etc/mysql/my.cnf server-id  = 3 relay-log-index =  slave-relay-bin.index //非必須 relay-log       = slave-relay-bin   //非必須   通過CHANGE MASTER TO語句來修改master的參數,參照B的配置; 通過 show slave status; 檢查C的狀態,參照B  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved