MySQL主從配置

17.1 MySQL主從介紹

MySQL主從又叫作Replication、AB複製。簡單講就是A和B兩臺機器作主從後,在A上寫數據,另一臺B也會跟着寫數據,二者數據實時同步的  MySQL主從是基於binlog的,主上須開啓binlog才能進行主從。  mysql

主從過程大體有3個步驟web

 1)主將更改操做記錄到binlog裏sql

 2)從將主的binlog事件(sql語句)同步到從本機上並記錄在relaylog裏服務器

 3)從根據relaylog裏面的sql語句按順序執行  主上有一個log dump線程,用來和從的I/O線程傳遞binlog  從上有兩個線程,其中I/O線程用來同步主的binlog並生成relaylog,另一個SQL線程用來把relaylog裏面的sql語句落地。ide

MySQL主從配置原理圖:測試


17.2 準備工做

咱們準備兩臺機器,192.168.6.120爲主配置,192.168.6.123爲從配置。兩臺機器都安裝MySQL並啓動。spa

 


17.3 配置主

安裝mysql  線程

修改my.cnf,增長server-id=120和log_bin=zhangjin13d

 

修改完配置文件後,啓動或者重啓mysqld服務  把mysql庫備份並恢復成zhangjin庫,做爲測試數據server

 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql  

mysql -uroot -p123456 -e 「create database zhangjin」  

mysql -uroot -p123456 zhangjin < /tmp/mysql.sql

 

而後進入MySQL建立用做同步數據的用戶  

grant replication slave on *.* to 'repl'@192.168.6.123 identified by '123456';  

flush tables with read lock;  

show master status;

退出MySQL,而後把/data/mysql/目錄下的zhangjin和zrlog也做一個備份:


17.4 配置從

安裝mysql  

查看my.cnf,配置server-id=123,要求和主不同

修改完配置文件後,啓動或者重啓mysqld服務  

把主上zhangjin庫同步到從上

 

能夠先建立zhangjin庫,而後把主上的/tmp/mysql.sql拷貝到從上,而後導入zhangjin庫  

而後登陸MySQL

mysql -uroot  

輸入如下命令:

stop slave;  

change master to master_host='192.168.6.120', master_user='repl',master_password='123456', master_log_file='zhangjin1.000002', master_log_pos=667359;

start slave;  

那麼,怎麼知道主從配置成功了呢?輸入命令show slave status \G,若是能夠看到兩個yes,則說明主從配置成功。

幾個配置參數

主服務器上  

binlog-do-db=      //僅同步指定的庫  

binlog-ignore-db= //忽略指定庫  

從服務器上  

replicate_do_db=  

replicate_ignore_db=  

replicate_do_table=  

replicate_ignore_table=  

replicate_wild_do_table=   //如zhangjin.%, 支持通配符%  

replicate_wild_ignore_table=

 

而後到主上執行如下MySQL命令:

unlock tables;

至此,主從配置就已經完成。


17.5 測試主從同步

主上 mysql -uroot 123456    

select count(*) from website;  

truncate table website;  

而後到從上登陸 mysql -uroot

select count(*) from website;  

主上繼續drop table website;  

從上查看錶show tables;

能夠看到website表也被刪除了。

相關文章
相關標籤/搜索