萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL主從環境搭建配置詳解

MySQL主從環境搭建配置詳解

MySQL主從環境搭建對於服務器負載大點的來講作用還是蠻大的哦,今天我們來看一篇關於MySQL主從環境搭建配置吧。

=Start=

緣由:

工作需要,學習需要。

正文:

MySQL的主從架構:

由一個MySQL實例作為主庫,接受讀寫請求,另外一個或多個MySQL實例通過MySQL的復制機制,將主庫的數據同步到從庫,從庫會設置只讀,防止主從數據不一致。

主從架構的好處:

如果主服務器出現問題,可以快速切換到從服務器提供服務;
可以在從服務器上執行查詢,降低主服務器的壓力;
可以在從服務器上執行備份,以避免備份期間影響主服務器的性能。
主從架構的局限:

由於MySQL實現的是異步復制,所以主從服務器之間的數據存在一定差異(延遲),對實時性要求高的數據仍然需要從主服務器上獲得。

主從搭建步驟:

Step

主庫(Master)

從庫(Slave)


修改主庫my.cnf配置文件,然後 需要重啟生效

[mysqld]
 
#作為主庫
#啟動二進制文件(*)
log-bin=mysql-bin
#服務器ID(*)
server-id=1
 
#需要備份的數據庫,多個寫多行
binlog-do-db=orders
#不需要備份的數據庫,多個寫多行
binlog-ignore-db=mysql
修改從庫my.cnf配置文件,然後 需要重啟生效

[mysqld]
 
#作為從庫(如果有多個從庫,在各自的my.cnf中的server-id需要各不相同)
server-id=2
 
replicate-do-db=bash  #只復制某個庫,多個寫多行
replicate-ignore-db=mysql #不復制某個庫,多個寫多行
replicate-ignore-db=test
replicate-ignore-db=information_schema
2 創建從庫用於連接主庫的賬號(repl)
mysql> GRANTREPLICATIONSLAVEON *.* TO 'repl'@'slave_ip' IDENTIFIEDBY 'password';
mysql> flushprivileges;
使用剛創建的 repl 賬戶在Slave所在主機上登錄Master,測試用於復制的賬戶是否可以連接上
mysql -h master_ip -u repl -p
3 記錄同步點
mysql> FLUSHTABLESWITHREADLOCK; //若要同步的數據庫中已經有數據,還需要先用該語句鎖定數據庫
mysql> SHOWMASTERSTATUS; //查看Master狀態,記錄File和Position兩個信息

將主庫數據做邏輯備份或物理備份

mysql> flushtableswithreadlock;
 
shell> mysqldump -uroot -p --all-databases --master-data > backup.sql
 
shell> scp -C backup.sqluser@slave_ip:/tmp/
 
mysql> unlocktables;
5  在從庫上恢復數據
shell> mysql -uroot -p </tmp/backup.sql
shell> rm -rf /tmp/backup.sql
6  
以root身份登錄從庫,並在從庫上設置主庫的相關信息(host、port、user等等)

mysql> CHANGEMASTERTO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
 
mysql> STARTSLAVE; //啟動主從復制
 
mysql> SHOWSLAVESTATUS\G //查看slave狀態
7 一切順利的話,到這裡,Master上的操作會被同步到Slave上。
在主庫創建test_tb表,模擬數據庫新增數據

mysql> create table test_tb(id int,name varchar(30)); 在從庫查看是否存在test_tb表
mysql> show tables;

copyright © 萬盛學電腦網 all rights reserved