最近想對公司的數據庫作個從數據庫,除了天天定時備份外,再多出一個同步數據庫,雙保險,這樣也能夠用從數據庫就行比較耗資源的數據統計。mysql
技術手段最好能記住,而後就是作筆記了,可是每次都查筆記也很差,但願能記住,這樣知識才會變成本身的,這裏總結了一下記憶點。sql
1,要在主,從服務器上改mysql的數據庫配置(肯定身份,這個好記)數據庫
a.改主服務器mysql配置,vim /etc/my.confvim
log-bin=mysql-bin #要啓用二進制日誌
server-id = 1
binlog-do-db = lk_homepage #肯定要操做的數據庫服務器
改完要重啓mysql,若是mysql重啓失敗,說明配置有問題日誌
進入mysql控制檯,show master status\G,能夠看到對應的狀態,要記住是經過哪一個二進制日誌進行同步,以及位置server
File: mysql-bin.000035
Position: 2093322
Binlog_Do_DB: lk_homepage
blog
b.改從服務器mysql配置,vim /etc/my.conf圖片
log-bin=mysql-bin #要啓用二進制日誌
server-id = 2 #這個千萬要和主的 server-id不同才行
重啓mysqlip
2,在主服務器mysql裏賦權限給從
GRANT REPLICATION SLAVE ON *.* TO '用戶名' @'對方主機ip' IDENTIFIED BY '密碼'
給slave一個操做權限,所謂同步,其實就是和認定的主機進行數據交互,固然要賦予目標權限。
3,接下來就是 從服務器的更改了,進入從服務器mysql控制檯運行
change master to master_host='192.168.xxx.xxx',master_user='xxx',master_password='xxx',
master_log_file='mysql-bin.000004',master_log_pos=308;
其中這些參數應該和主服務器上的對應的設置匹配上才行。
而後要 start slave, 若是前面已經運行了slave,要先 stop slave 一下。
>>show slave status\G
能夠看到slave轉檯,如下兩行都爲Yes才表示處於可同步狀態,若是同步過程出了sql錯誤,清理掉sql出錯後,從新同步,此時須要在前面的master_log_pos裏修改成新的位置,再重新啓動slave,而後看下兩個是否變成了Yes
Slave_IO_Running: Yes //此狀態必須YES
Slave_SQL_Running: Yes //此狀態必須YES
從以上能夠看出,從服務器會去主服務器找對應的日誌,從日誌裏找到要作的更改,而後同步到從服務器,從服務器再進行對應的sql操做,爲此上網驗證了下,大體是這樣的原理
圖片來自互聯網