解決Laravel 使用insert插入資料,欄位created_at為0000的問題
MySQL資料庫沒有增量備份的機制,但它提供了一種主從備份的機制,就是把主資料庫的所有的資料同時寫到備份資料庫中。實現MySQL資料庫的熱備份。
下面是具體的主從熱備份的步驟:
假設主伺服器A(master)、從伺服器為B(slave)
A:192.168.0.104
B:192.168.0.169
1.主伺服器授權
授權副伺服器可以連線主伺服器並可以進行更新。這是在主伺服器上進行的,建立一個username和password供副伺服器訪問時使用。也可以使用主伺服器預設的帳號和密碼。
2.資料複製
將master上已有的資料複製到slave上,以便主從資料庫建立的時候兩個資料庫的資料保持一致。匯出匯入資料庫就不詳述了。
3.配置主伺服器
修改master上mysql的根目錄下的my.ini配置檔案
在選項配置檔案中賦予主伺服器一個server-id,該id必須是1到2^23-1範圍內的唯一值。主伺服器和副伺服器的server-id不能相同。另外,還需要配置主伺服器,使之啟用二進位制日誌,即在選項配置檔案中新增log-bin啟動選項。
注意:如果主伺服器的二進位制日誌已經啟用,關閉並重新啟動之前應該對以前的二進位制日誌進行備份。重新啟動後,應使用RESET MASTER語句清空以前的日誌。
原因:master上對資料庫cartrader的一切操作都記錄在日誌檔案中,然後會把日誌發給slave,slave接收到master傳來的日誌文 件之後就會執行相應的操作,使slave中的資料庫做和master資料庫相同的操作。所以為了保持資料的一致性,必須保證日誌檔案沒有髒資料。
4.重啟master
配置好以上選項後,重啟MySQL服務,新選項將生效。現在,所有對資料庫中資訊的更新操作將被寫進日誌中。
5.配置slave
在副伺服器上的MySQL選項配置檔案中新增以下引數:
[mysqld]
#唯一,並與主伺服器上的server-id不同。
server-id=2
#主伺服器的主機名或者ip地址
master-host= 192.168.0.104
#如果主伺服器沒有在預設的埠上監聽,則需確定master-port選項
master-port=3306
#步驟2.1中建立的使用者名稱和密碼
master-user=root
master-password=123456#複製操作要針對的資料庫(可選,預設為全部)
replicate-do-db=cartrader
#如果主副伺服器間連線經常失敗,需增加master-retry-count和master-connect-retry
#master-retry-count連線重試的次數
#master-connect-retry 連線失敗後等待的秒數
master-retry-count = 999
master-connect-retry = 60
5.重啟slave
副伺服器上MySQL服務重啟後,還在資料目錄中建立一個master.info檔案,其中包含
所有有關複製過程的資訊(連線主伺服器的相關資訊及與主伺服器交換資料的相關資訊)。在初次啟動以後,副伺服器將檢查這個master.info檔案,以得到相關資訊。
如果想修改複製選項,刪除master.info並重啟MySQL服務,在啟動過程中使用選項配置檔案中的新選項進行重新建立了master.info檔案。
將主伺服器上備份好的資料庫指令碼檔案(cartrader.sql)匯入到副伺服器資料庫中,以便保
證主-副伺服器上進行復制操作的起點一樣。
6.檢視master的狀態與設定的是否一致
7.檢視slave
一般情況下重啟了slave之後,自動就會開啟複製功能,可以通過下面的語句檢視
在slave上
mysql>show slave status
如果顯示waiting for master to send event 的話就表示已經啟動了,反之就執行
mysql>start slave
來啟動slave
在SHOW SLAVE STATUS的命令輸出後,應該包含Slave_IO_Running對應的值為YES,
Slave_SQL_Running對應的值為YES,只有這樣才保證主從機能正常備份。
暫時停止主從熱備份的命令是:
mysql>stop slave
總結
以上所述是小編給大家介紹的Mysql雙機熱備和負載均衡的實現步驟,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對碼農教程網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!