mysql主從同步

若是主從配置以前安裝了雲平臺,請中止雲平臺後在進行mysql主從配置。mysql

  一、登陸master數據庫,檢查數據庫端口防火牆設置,容許遠程客戶鏈接,若是沒有,執行如下操做。 
  執行命令:iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 
  /etc/init.d/iptables save 
  注:參照具體操做系統進行配置 
  二、編輯master數據庫上的/etc/my.cnf,並將如下語句添加至[mysql]小節datadir語句下的區域 
  log_bin=mysql-bin  
  server_id=1 
  三、重起master數據庫mysql 
  #service mysqld restart 
  四、在master數據庫上建立一個replication帳戶並給予權限。咱們將使用「cloud-repl」用戶,密碼「password」。這裏假定master數據庫和slave數據庫運行在10.117.66.0/25網絡。 
  mysql>create user 'cloud-repl'@'10.117.26.%' identified by 'password';(此處寫實際主數據庫ip) 
  五、mysql> grant replication slave on *.* to 'cloud-repl'@'10.117.66.%' identified by 'password'; (此處從服務器ip) 
  mysql> flush privileges;  
  mysql> flush tables with read lock; 
  六、保持當前shell下MySQL 會話的運行 
  七、在新的shell啓動第二個MySQL 會話 
  八、獲取數據庫的當前position  
  mysql>show master status;  
   +------------------+----------+--------------+------------------+ 
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
   +------------------+----------+--------------+------------------+ 
   | mysql-bin.000001 |      412 |              |                  |  
      +------------------+----------+--------------+------------------+ 
  九、記下實例返回的File和position。 
  十、壓縮master數據庫的數據文件 
   #tar zcf /tmpdatabak.tgz /var/lib/mysql 
  十一、登陸slave數據庫所在的服務器,安裝mysql,版本要求跟master數據庫一致。 
   注:安裝mysql,須要按照elaster的方式安裝 
  十二、中止slave數據庫 
   #service mysqld stop 
  1三、拷貝master數據庫的tmpdatabak.tgz到slave數據庫的根目錄/,在主數據庫操做複製命名以下: 
   scp /tmpdatabak.tgz root@10.110.122.202:/ 
  解壓到目錄/var/lib/mysql 
   #cd / 
   #tar -zxvf tmpdatabak.tgz 
  1四、檢查slave數據庫端口防火牆設置,容許遠程客戶鏈接,若是沒有,執行如下操做。 
   iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 
   /etc/init.d/iptables save 
  注:參照具體操做系統進行配置 
  1五、編輯slave數據庫上的my.cnf,並添加以下語句於[mysql]小節的datadir語句下 
   server_id=2  
  1六、重啓slave數據庫MySQL  
   /etc/init.d/mysqld start 
  1七、指示slave數據庫鏈接master數據庫並進行復制。 
   使用以前步驟裏已經使用的值替換IP地址、密碼、log file和position。在slave執行以下操做 
   mysql>change master to master_host='10.117.66.137', 
   master_user='cloud-repl', 
   master_password='password', 
   master_log_file='mysql-bin.000001', 
   master_log_pos=412; 
  1八、啓動slave數據庫上的replication  
   mysql> start slave; 
  1九、登陸到master數據庫釋放master數據庫庫的lock(能夠等slave數據庫準備完成再解鎖) 
   mysql> unlock tables; 
  20、測試master數據庫和slave數據庫配置是否正常工做,檢查一下操做後,看master數據庫和slave數據庫是否一致: 
   增長表、刪除表 
   增長記錄、刪除記錄、修改記錄 
   master數據庫重起後,工做是否正常 
   slave數據庫重起後,工做是否正常 
   命令查看同步狀態 
   mysql>show slave status; 
   mysql>show slave status \G; 
  若是第一遍失敗,第二遍操做注意事項 
  一、在slave節點執行 
   mysql> show slave status; 
   mysql> stop slave; 
  二、刪除從數據庫默認安裝目錄 /var/lib/mysql 下全部文件,以避免主數據庫文件覆蓋時與第一次未成功的文件合併 
  三、確保具備replication slave權限的用戶能夠從slave節點訪問master節點 例如master ip爲10.117.66.137 slave ip爲10.117.66.138則,在slave節點執行如下命令測試: 
  mysql -h10.117.66.137 -ucloud-repl -ppassword
相關文章
相關標籤/搜索