17.1 MySQL主從介紹 17.2 準備工作 17.3 配置主 17.4 配置從 17.5 測試主從同步
17.1 MySQL主從介紹
master是主,slave是從。
主要應用場景:備份、備份+“從”機器也可以讀、(減輕主的壓力)
17.2 準備工作
需要兩臺機器都安裝了mysql服務,然後啟動mysql服務,
17.3 配置主
1.首先修改主上的配置文件my.cnf,加入如下兩行,server-id後面的參數自行設置,log_bin後面的是生成binlog的前綴。
改完後要重啟一下mysql
然後/data/mysql下會生成一些文件,前綴就是以log_bin後面的字符為準的。
2.準備一個數據做演示用的,比如說我們可以把blog做一個備份,
然後創建一個新的庫,
然後我們把blog.sql的數據恢復進去。
然後我們可以看一下,如下圖第四行就是我們剛剛創建的aming數據庫
(aminglinux1.000001裏記錄了所有aming數據庫的東西,所以可以通過這個文件恢復aming數據庫)
3.然後我們還要創建一個用戶,這個用戶是主從相互同步用的,先進入mysql裏面來,
然後創建用戶(指定權限為replication slave,然後是針對所有的庫所有的表*.*,指定erpl用戶,然後針對從的ip,然後是密碼)
然後把這個表鎖一下,是為了不讓它寫了,因為我們以後要同步從的數據。他們兩個要保持一致。
然後還要做一個然後記住如下兩個參數。
然後退出mysql,然後我們來做一個數據同步,我們先看看都有哪些庫需要同步,我們同步如下幾個庫。其中mysql不用同步。
其中aming和blog已經備份過了,就是
然後我們把mysql2和zrlog分別做一個備份
然後等會我們把tmp下的所有sql文件拷貝到從上去。
17.4 配置從
查看mysql服務有沒有啟動,然後看看裏面有沒有server參數,沒有就需要加上,這裏沒有,我們來加一下。
log_bin參數不用配置,因為只有主才需要二進制文件。
然後重啟,然後我們把主上的幾個sql給它拷貝過來,並做一個數據的恢復,這裏我們使用scp拷貝
未找到命令是因為我們沒有創建PATH,我們來給如下兩個做alias
然後我們登錄mysql然後創建4個庫
然後退出來,然後分別把4個數據庫恢復一下
然後我們看看/data/mysql目錄是不是和主機器上一致的
一致之後我們就可以開始實現主從啦。
登錄從上的mysql然後然後就是實現主從非常關鍵的一步
指定主ip,指定用戶,指定密碼,指定日誌文件(就是我們剛剛記住的兩個參數的第一個,)指定的是記住的第二個數值,
然後,然後我們判定主從到底有沒有配置成功,
看一下如下位置是不是兩個yes,
如果有一個是no就說明你的主從斷開了,
然後我們回到主上登錄mysql把這個表恢復寫操作,。
17.5 測試主從同步
如上參數是沒有講到的一些參數,他們的用法是加在配置文件裏的,
第一個是你只要指定同步那個庫,就把他加在主配置文件裏,後面指定要同步的庫,如果是多個就用逗號分隔。
第二個是忽略某一個庫不同步,其他都同步
從上的第一二同上,然後第三四個是指定同步表和忽略指定的表(三四慎用,某些情況下會導致數據不完整,)
為了保險我們使用五六兩個參數(因為它支持“庫 . 表”),如針對aming這個庫的所有的表都去做,或者所有的都忽略。
然後我們來測試一下主從
我們在主上做一個操作,我們來針對aming庫,,然後看一下它的表
然後我們對它的表做一個操作,查看users表是多少行在從上也做一下這個操作,應該都是一行。
然後我們早主上清空一下這個表,然後看一下它還有多少行,然後在從上也看一下,應該也是變成0了。
然後我們把這個表刪掉,然後到從上看一下這個表應該也沒有了
如果我們在從上刪除修改東西就會導致主從不一致,然後導致斷開。
想要修復就在從上用如下代碼,再用看看有沒有起來,如果不行就只能重新做主從了。
重新做主從:(先保證數據一直)
然後在從上運行
主上查看一下這倆個參數,
然後到從上運行
然後再之後查看主從連接狀態應該就連接上了。
17.1 MySQL主從介紹 17.2 準備工作 17.3 配置主 17.4 配置從 17.5 測試主從同步