mysql主從介紹及測試

說明:有很多同窗不能一次性把實驗作成功,這是由於還不熟悉,建議至少作3遍

17.1 MySQL主從介紹

  1. MySQL主從又叫作Replication、AB複製。簡單講就是A和B兩臺機器作主從後,在A上寫數據,另一臺B也會跟着寫數據,二者數據實時同步的
  2. MySQL主從是基於binlog的,主上須開啓binlog才能進行主從。
  3. 主從過程大體有3個步驟 1)主將更改操做記錄到binlog裏 2)從將主的binlog事件(sql語句)同步到從本機上並記錄在relaylog裏 3)從根據relaylog裏面的sql語句按順序執行
  4. 主上有一個logdump線程,用來和從的I/O線程傳遞binlog
  5. 從上有兩個線程,其中I/O線程用來同步主的binlog並生成relaylog,另一個SQL線程用來把relaylog裏面的sql語句落地
  6. MySQL主從原理圖

17.2 準備工做

  1. 下載二進制免編譯包 5.6 64bit
  2. 安裝mysql
  3. 配置mysql

17.3 配置主

  1. 安裝mysql
  2. 修改my.cnf,增長server-id=130和log_bin=aminglinux1
  3. 修改完配置文件後,啓動或者重啓mysqld服務
  4. 把mysql庫備份並恢復成aming庫,做爲測試數據
  5. mysqldump -uroot mysql > /tmp/mysql.sql
  6. mysql -uroot -e 「create database aming」
  7. mysql -uroot aming < /tmp/mysql.sql
  8. 建立用做同步數據的用戶
  9. grant replication slave on . to 'repl'@slave_ip identified by 'password';
  10. flush tables with read lock;
  11. show master status;

17.4 配置從

  1. 安裝mysql
  2. 查看my.cnf,配置server-id=132,要求和主不同
  3. 修改完配置文件後,啓動或者重啓mysqld服務
  4. 把主上aming庫同步到從上
  5. 能夠先建立aming庫,而後把主上的/tmp/mysql.sql拷貝到從上,而後導入aming庫
  6. mysql -uroot
  7. stop slave;
  8. change master to master_host='', master_user='repl', master_password='', master_log_file='', master_log_pos=xx,
  9. start slave;
  10. 還要到主上執行 unlock tables

17.5 測試主從同步

  1. -uroot
  2. show slave stauts\G
  3. 看是否有
Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
 還需關注
 Seconds_Behind_Master: 0  //爲主從延遲的時間
 Last_IO_Errno: 0
 Last_IO_Error:
 Last_SQL_Errno: 0
 Last_SQL_Error:
  1. 幾個配置參數
1.主服務器上
 binlog-do-db=      //僅同步指定的庫
 binlog-ignore-db= //忽略指定庫
2.從服務器上
 replicate_do_db=
 replicate_ignore_db=
 replicate_do_table=
 replicate_ignore_table=
 replicate_wild_do_table=   //如aming.%, 支持通配符% 
 replicate_wild_ignore_table=
  1. 主上 mysql -uroot aming
  2. select count(*) from db;
  3. truncate table db;
  4. 到從上 mysql -uroot aming
  5. select count(*) from db;
  6. 主上繼續drop table db;
  7. 從上查看db表

擴展

有的同窗,遇到主從不能正常同步,提示uuid相同的錯誤。這是由於克隆機器致使。
https://www.2cto.com/database/201412/364479.htmlhtml

相關文章
相關標籤/搜索