MySQL主从数据库同步
參考文檔?https://blog.csdn.net/starlh35/article/details/78735510
主從數(shù)據(jù)庫同步的實現(xiàn)思路
如圖:
?主服務(wù)器master記錄數(shù)據(jù)庫操作日志到Binary log,從服務(wù)器開啟i/o線程將二進制日志記錄的操作同步到relay log(存在從服務(wù)器的緩存中),另外sql線程將relay log日志記錄的操作在從服務(wù)器執(zhí)行。
記住這張圖,接下來基于這個圖實際設(shè)置主從數(shù)據(jù)庫。
主從數(shù)據(jù)庫設(shè)置的具體步驟
1. 打開mysql數(shù)據(jù)庫配置文件
vim /etc/my.cnf2.在主服務(wù)器master上配置開啟Binary log,主要是在[mysqld]下面添加:
server-id=1 log-bin=master-bin log-bin-index=master-bin.index如圖:
3.重啟mysql服務(wù)
service mysql restart4.檢查配置效果,進入主數(shù)據(jù)庫并執(zhí)行
mysql> SHOW MASTER STATUS;可以看到下圖表示配置沒問題,這里面的File名:master-bin.000001 我們接下來在從數(shù)據(jù)庫的配置會使用:
5. 配置從服務(wù)器的 my.cnf
在[mysqld]節(jié)點下面添加:
server-id=2 relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin這里面的server-id 一定要和主庫的不同,如圖:
配置完成后同樣重啟從數(shù)據(jù)庫一下
service mysql restart6.接下來配置兩個數(shù)據(jù)庫的關(guān)聯(lián)
首先我們先建立一個操作主從同步的數(shù)據(jù)庫用戶,切換到主數(shù)據(jù)庫執(zhí)行:
mysql> create user repl; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'從xxx.xxx.xxx.xx' IDENTIFIED BY 'mysql'; mysql> flush privileges;這個配置的含義就是創(chuàng)建了一個數(shù)據(jù)庫用戶repl,密碼是mysql, 在從服務(wù)器使用repl這個賬號和主服務(wù)器連接的時候,就賦予其REPLICATION SLAVE的權(quán)限,?.?表面這個權(quán)限是針對主庫的所有表的,其中xxx就是從服務(wù)器的ip地址。
進入從數(shù)據(jù)庫后執(zhí)行:
這里面的xxx是主服務(wù)器ip,同時配置端口,repl代表訪問主數(shù)據(jù)庫的用戶,上述步驟執(zhí)行完畢后執(zhí)行start slave啟動配置:
mysql> start slave;停止主從同步的命令為:
mysql> stop slave;查看狀態(tài)命令,\G表示換行查看
mysql> show slave status \G;可以看到狀態(tài)如下:
這里看到從數(shù)據(jù)庫已經(jīng)在等待主庫的消息了,接下來在主庫的操作,在從庫都會執(zhí)行了。我們可以主庫負責(zé)寫,從庫負責(zé)讀(不要在從庫進行寫操作),達到讀寫分離的效果。
總結(jié)
以上是生活随笔為你收集整理的MySQL主从数据库同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不抛弃异常值的几种情况
- 下一篇: mysql 导入tsv文件_MySQL导