什麼是主從複製?
如果數據庫服務器一旦宕機,我們的項目將無法運行,如果數據庫服務器硬盤損壞還將面臨數據丟失的問題!!!
將MySQL數據庫主機的數據複製到MySQL從機上(備份)
原理:將MySQL主機的SQL語句以日誌的方式記錄下來,通過網絡將日誌文件複製到從機上,執行日誌中的SQL語句同步主機的操作和數據
搭建步驟
- 創建三臺Linux服務器
- 分別安裝MySQL數據庫
- 配置主節點(Mysql主機操作)
- 配置從節點(Mysql從機操作)
1.搭建三臺Linux服務器
一臺作爲mysql數據庫的主節點(master)
另外兩臺作爲mysql數據庫的從節點(slave)
2.分別安裝mysql數據庫
說明:可以先安裝一臺,然後在克隆兩臺
2.1 上傳mysql的yum源
2.2 使用yum install 命令安裝
2.3 啓動mysql數據庫,修改密碼,設置允許遠程訪問
2.4 關閉防火牆
或者上傳rpm安裝包離線安裝
可參考之前文章Linux上安裝mysql教程:
https://blog.csdn.net/MacWx/article/details/98171109
3.配置主從
3.1 在主節點(也就是Mysql主機)
vi /etc/my.cnf
增加
server-id=132
log_bin
#需要同步的數據庫
binlog-do-db=baizhi
#忽略(不需要)同步的數據庫
binlog-ignore-db=mysql
重啓主節點的mysql數據庫
登錄,查看主機狀態
3.2 從節點
說明:如果是克隆的需要先刪除從機上的/var/lib/mysql/auto.cnf文件
rm -f /var/lib/mysql/auto.cnf
vi /etc/my.cnf
增加
server-id=133
重啓mysql數據庫 systemctl restart mysqld
登錄mysql數據庫 mysql -uroot -p
關閉從機狀態 stop slave
設置和主機建立連接
語法
change master to master_host='主機ip地址',master_user=主機用戶名,master_password=主機密碼,master_log_file='主機日誌文件名',master_log_pos=日誌文件的位置
示例
change master to master_host=’192.168.152.133’,master_user=’root’,master_password=’123456’,master_log_file=’mysqld-bin.000001’,master_log_pos=241
查看從機狀態 show slave status \G;
4.測試
在主節點創建一個叫做baizhi的數據庫,然後在該數據庫中創建一張表,添加一條測試數據
在從節點查看
看到我們在Mysql主機添加一條記錄,從機也有了相應的記錄,這就實現了mysql的主從複製!