首先我在本身的linux虛擬機上安裝了一個數據庫,這樣加上我windows上的數數據庫就能夠模擬主從備份了。 安裝過程沒什麼好說的,往後再補充。 值得注意的一點是,安裝好以後到 /usr/share/mysql 目錄下去copy個my.cnf 這個時候有不少個選擇的,例如 my-large.cnf my-medium.cnf my-small.cnf 從名字就能夠看出,一個是規模大的,一箇中等的,一個小的,裏面的配置有所不一樣 這樣不用處處去找mysql的配置優化mysql
1、主庫配置 比較簡單 server-id數據庫服務的標誌,注意在全部集羣中不要重複就好了 log-bin開啓二進制日誌,數據從主庫copy到從庫就是靠這個日誌來執行的。 [mysqld] server-id=101 log-bin=mysql-binlinux
修改配置文件時候,重啓mysql服務sql
2、從表配置 log-bin開啓二進制日誌,能夠不開啓。注意從庫,同時也能夠做爲其餘庫的主庫這樣能夠實現多數據庫集羣。以前看到一篇比較好的文章的,等我找回來再看看。 server-id 集羣中惟一 relay-log salve線程是在relay-log裏面讀取二進制log執行 log-slave-updates 容許經過log更新數據庫1就是true read-only 只讀1就是true數據庫
log-bin = mysql-bin server-id = 2 relay-log = mysql-relay-bin log-slave-updates = 1 read-only = 1 修改以後別忘了重啓數據庫windows
2、鎖表,copy數據到從庫初始化 使用mysqldump複製數據庫到從庫中,保持兩個庫一致的優化
3、查看master庫的日誌狀態 SHOW MASTER STATUS 線程
4、設置從庫從哪裏拷貝主庫數據 MASTER_HOST master庫的IP地址 MASTER_USER master數據庫的用戶名,正式環境建議不要用root用戶,由於root用戶會擁有讀寫權 限,這樣就有可能致使兩邊數據不一致了。注意mast數據庫的這個用戶是開通了容許從庫的ip遠程訪問的。 MASTER_PASSWORD 數據庫密碼 MASTER_LOG_FILE 剛纔查到的master的log狀態 mysql-bin.000006 MASTER_LOG_POS master的Postion日誌
mysql> CHANGE MASTER TO MASTER_HOST='master庫的IP地址′, MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000007′, MASTER_LOG_POS=107;server
設置好以後還要執行開始纔會開始同步 mysql>start slave; 若是要修改配置,那麼要先停掉同步 mysql> stop slave 而後再修改 再看一下slave的狀態 Slave_IO_Running: Yes Slave_SQL_Running: Yes 證實成功了 而後驗證一下,改變主庫的數據庫,而後查看一下從庫,跟着更新了。圖片