標籤:兩種 根據 host 分享圖片 data 圖片 inf 拷貝 mysqldump
1、MySQL主從配置
MySQL主從又叫做Replication、AB複製。簡單講就是A和B兩台機器做主從後,在A上寫資料,另外一台B也會跟著寫資料,兩者資料是即時同步的
MySQL主從是基於binlog的,主上須開啟binlog才能進行主從。
主從過程大致有3個步驟
1)主將更改操作記錄到binlog裡
2)從將主的binlog事件(sql語句)同步到從本機上並記錄在relaylog裡
3)從根據relaylog裡面的sql語句按順序執行
主上有一個log dump線程,用來和從的I/O線程傳遞binlog
從上有兩個線程,其中I/O線程用來同步主的binlog並產生relaylog,另外一個SQL線程用來把relaylog裡面的sql語句落地
2、配置主
主上操作
安裝mysql
修改my.cnf,增加server-id=130和log_bin=aminglinux1
修改完設定檔後,啟動或者重啟mysqld服務,/etc/init.d/mysql restart,重啟之後查看/data/mysql目錄下,發現生產多個以aminglinux1為首碼的檔案,這個檔案是實現主從的主要檔案
把mysql庫備份並恢複成aming庫,作為測試資料
mysqldump -uroot mysql > /tmp/mysql.sql
mysql -uroot -e “create database aming”建立新的庫
mysql -uroot aming < /tmp/mysql.sql,恢複備份檔案至新建立的庫
建立用作同步資料的使用者
進入資料庫,然後執行如下命令:
grant replication slave on *.* to ‘repl‘@slave_ip identified by ‘password‘;
flush tables with read lock;,鎖定表,停止資料寫入
show master status;
3、配置從
從上操作
安裝mysql
查看my.cnf,配置server-id=132,要求和主不一樣
從不需要增加log_bin參數,修改完設定檔後,啟動或者重啟mysqld服務
把主上aming庫同步到從上
可以先建立aming庫,然後把主上的/tmp/mysql.sql拷貝到從上,然後匯入aming庫
建立表之後,執行如下命令進行恢複:
mysql -uroot blog < /tmo/blog.sql
mysql -uroot zrlog < /tmo/zrlog.sql
mysql -uroot aming < /tmo/aming.sql
然後執行如下命令,實現主從
mysql -uroot
stop slave;
change master to master_host=‘‘,192.168.1.130 master_user=‘repl‘, master_password=‘‘, master_log_file=‘aminglinux1.000001‘, master_log_pos=474566; //此命令是實現主從的重要配置
start slave;
然後執行show slave status\G查看從狀態,此處應顯示為兩個yes
還要到主上執行 unlock tables
4、測試主從同步
主伺服器上
binlog-do-db= //僅同步指定的庫
binlog-ignore-db= //忽略指定庫
從伺服器上
replicate_do_db=
replicate_ignore_db= //不常用
replicate_do_table= //僅同步哪些表,不常用
replicate_ignore_table= //忽略哪些表,此操作容易導致資料不完整,因此建議採用下面兩種操作
replicate_wild_do_table= //如aming.%, 支援萬用字元%
replicate_wild_ignore_table=
主從測試
主上
mysql -uroot aming
select count(*) from db;
truncate table db;此時該db為空白
到從上
mysql -uroot aming
select count(*) from db;
主上繼續drop table db;
從上查看db表,此時也沒有該表
8.31 MySQL主從配置、準備工作、配置主、配置從、測試主從同步