一、數據主從理論
1、主從復制原理
Mysql主從又叫Replication、AB復制。簡單講就是A與B兩台機器做主從后,在A上寫數據,另外一台B也會跟着寫數據,實現數據實時同步。
2、MySQL之間數據復制的基礎是二進制日志文件(binary log file)。一台MySQL數據庫一旦啟用二進制日志后,其作為master,它的數據庫中所有操作都會以“事件”的方式記錄在二進制日志中,其他數據庫作為slave通過一個I/O線程與主服務器保持通信,並監控master的二進制日志文件的變化,如果發現master二進制日志文件發生變化,則會把變化復制到自己的中繼日志中,然后slave的一個SQL線程會把相關的“事件”執行到自己的數據庫中,以此實現從數據庫和主數據庫的一致性,也就實現了主從復制。
3、主從復制的作用及應用
(1)實時災備,用於故障切換
(2)讀寫分離,提供查詢服務
(3)備份,避免影響業務
二、主從復制操作流程
1、服務器初始准備
主服務器:
開啟二進制日志
配置唯一的server-id
獲得master二進制日志文件名及位置
創建一個用於slave和master通信的用戶賬號
從服務器:
配置唯一的server-id
使用master分配的用戶賬號讀取master二進制日志
啟用slave服務
准備工作:
1.主從數據庫版本最好一致(mysql5.5)
2.主從數據庫內數據保持一致(mysql5.5)
主數據庫:192.168.138.150
從數據庫:192.168.138.151
2、修改Mysql配置,開啟bin.log
找到主數據庫的配置文件my.cnf(或者my.ini)
修改完成之后,重啟數據庫
3、重啟mysql,創建用於同步的用戶賬號並賦予權限
mysql> create user jumpwslaver@192.168.138.151 IDENTIFIED BY 'jumpwbx';
賦予權限
檢查從庫賬戶jumpwbxslaver的權限
mysql> show grants for jumpwbxslaver@192.168.138.151;
3、查看master狀態,記錄二進制文件名(mysql-bin.000008)和位置(1993)
mysql> show master status ;
至此,主庫配置完成。
三、主從復制從庫配置流程
1、同樣的是修改數據庫的/etc/my.conf文件,需要注意的是sever-id 必須區別於主數據庫的server-id
2、重啟mysql,打開mysql會話,執行同步SQL語句(需要主服務器主機名,登陸憑據,二進制文件的名稱和位置)
mysql> CHANGE MASTER TO MASTER_HOST='192.168.138.150',
-> MASTER_USER='jumpwbx',
-> MASTER_PASSWORD='jumpwbx',
-> MASTER_LOG_FILE='mysql-bin.000008',
-> MASTER_LOG_POS=1993;
3、啟動主從同步
mysql> start slave;
4、查看slave狀態
mysql> SHOW SLAVE STATUS\G;
當Slave_IO_Running和Slave_SQL_Running都為YES的時候就表示主從同步設置成功。接下來,可以在主庫做些增刪查找的操作,看一下是否同步到從庫。
四、主從同步實驗
主庫數據庫狀態
從庫數據庫狀態
操作:刪除lee這個自定義的數據庫
從庫已經和主庫同步。
擴展操作
可以在配置中進行定義,哪些庫是同步的,哪些是不同步的。
#不同步哪些數據庫
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
清除主從關系