Linux基础学习八:mysql主从复制原理以及详细搭建步骤
MySQL的主從復制
MySQL的主從復制,指的是可以創(chuàng)建多臺和主數(shù)據(jù)庫完全一樣的數(shù)據(jù)庫環(huán)境(從數(shù)據(jù)庫),對主數(shù)據(jù)庫的寫操作(增、刪、改)會自動同步到子數(shù)據(jù)庫中。
作用:
-
從數(shù)據(jù)庫作作為冷備機,進行日常備份,確保數(shù)據(jù)安全
-
從數(shù)據(jù)庫作作為熱備機,一旦主機宕機,可以切換到從數(shù)據(jù)庫提供服務,提高系統(tǒng)可用性。
-
可以實現(xiàn)數(shù)據(jù)庫的讀寫分離,提高系統(tǒng)的并發(fā)性。
搭建步驟:
克隆3臺(至少2臺)安裝過MySQL的虛擬機
在虛擬機中創(chuàng)建相同的數(shù)據(jù)庫,例如:baizhi 一定要保證機器中 baizhi數(shù)據(jù)庫狀態(tài)是完全一致的。
配置主機
編輯 /etc/my.cnf 文件,明確主機的身份
? ? ? ? ? ? ? ? ?1.開啟日志功
?去掉12行的#注釋
原配置:# log_bin
修改后:log_bin
? ? ? ? ? ? ? ? ?2.設置要復制的數(shù)據(jù)庫 wbc和不復制的數(shù)據(jù)庫 mysql
在log_bin下方添加如下配置:
binlog-do-db=wbc
binlog-ignore-db=mysql
? ? ? ? ? ? ? ? ?3.添加server_id,值要唯一,一般寫ip的最后一段
同樣在log_bin下方添加配置:
server-id=141
? ? ? ? ? ? ? ? ?4.重啟MySQL
systemctl restart mysqld
? ? ? ? ? ? ? ? 5. 登錄MySQL,查看狀態(tài)
???????4. 添加如下配置:
? ? ????????配置監(jiān)聽哪個主機
? ?? ? ? ? 1.編輯 /etc/my.cnf 文件
添加如下配置:
server-id=從庫的唯一標識值(從庫ip最后一段)
刪除 auto.cnf 文件
rm -f /var/lib/mysql/auto.cnf重啟MySQL
systemctl restart mysqld登錄MySQL,配置從機
停掉slave mysql> stop slave; ? 配置主機信息: change master to master_host='主機ip地址',master_user='主機用戶名',master_password='主機密碼',master_log_file='主機日志文件名',master_log_pos=日志文件的位置; ? mysql>change master to ?master_host='192.168.84.135',master_user='root',master_password='root',master_log_file='localhost-bin.000001',master_log_pos=154; ? 啟動slave mysql>start slave; ? 查看從機狀態(tài) mysql>show slave status \G;??如果配置出現(xiàn)問題,show slave status 中會有異常信息。同上述步驟配置第2臺從機。?
注意:如果配置出錯,可以查看位于 /var/log/mysqld.log日志文件的錯誤信息
主從復制的原理
復制原理實現(xiàn)細節(jié):
master在執(zhí)行更改操作(增、刪、改)后,會將操作記錄串行地寫入到binlog文件中。
slave的IO線程接收到主庫的更新記錄后,將記錄保存到relay log中。
slave的SQL線程讀取relay log中的更新語句并在從庫執(zhí)行。
總結
以上是生活随笔為你收集整理的Linux基础学习八:mysql主从复制原理以及详细搭建步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python解析html xml最好的模
- 下一篇: Linux基础学习十:Linux的权限管