站長資訊網
        最全最豐富的資訊網站

        實現MySQL的主從復制

        實現MySQL的主從復制

        相關學習推薦:mysql教程

        測試服務器使用centos7.2進行相關配置

        文章內容參考mysql數據庫的主從同步,實現讀寫分離

        概敘

        大型網站為了軟解大量的并發訪問,除了在網站實現分布式負載均衡,遠遠不夠。到了數據業務層、數據訪問層,如果還是傳統的數據結構,或者只是單單靠一臺服務器來處理如此多的數據庫連接操作,數據庫必然會崩潰,特別是數據丟失的話,后果更是不堪設想。這時候,我們會考慮如何減少數據庫的連接,下面就進入我們今天的主題。

        利用主從數據庫來實現讀寫分離,從而分擔主數據庫的壓力。在多個服務器上部署mysql,將其中一臺認為主數據庫,而其他為從數據庫,實現主從同步。其中主數據庫負責主動寫的操作,而從數據庫則只負責主動讀的操作(slave從數據庫仍然會被動的進行寫操作,為了保持數據一致性),這樣就可以很大程度上的避免數據丟失的問題,同時也可減少數據庫的連接,減輕主數據庫的負載。

        安裝mysql

        服務器安裝mysql我參考了以下兩篇文章

        Centos7.2安裝Mysql5.7(阿里云)

        Centos7 遠程無法連接mysql數據庫

        在安裝數據庫過程中,由于遠程無法連接踩了一些坑,首先在配置完成數據庫后,需要數據庫授權允許訪問,然后打開防火墻設置,將3306端口打開,允許通過數據庫管理工具通過端口訪問數據庫,我就是在沒有設置打開防火墻這塊一直踩坑。

        在測試的兩臺服務器都分別安裝了mysql,并同時導入測試數據庫

        主從復制配置

        主服務器配置

        修改主服務器mysql配置,文件位于/etc/my.cnf

        #在[mysqld]中添加: server-id=1log_bin=master-bin log_bin_index=master-bin.index binlog_do_db=master  #server-id 服務器唯一標識。 #log_bin 啟動MySQL二進制日志,即數據同步語句,從數據庫會一條一條的執行這些語句。 #binlog_do_db 指定記錄二進制日志的數據庫,即需要復制的數據庫名,如果復制多個數據庫,重復設置這個選項即可。 #binlog_ignore_db 指定不記錄二進制日志的數據庫,即不需要復制的數據庫名,如果有多個數據庫,重復設置這個選項即可。 #其中需要注意的是,binlog_do_db和binlog_ignore_db為互斥選項,一般只需要一個即可。

        創建用戶和權限

        grant replication slave on . to masterbackup@’%’ identified by ‘123456’;

        %通配符,表示任意IP都可訪問主服務器,正式環境請配置指定從服務器IP

        創建完成后,通過命令重啟mysql服務

        service mysql restart

        通過命令show master status查看狀態

        實現MySQL的主從復制

        slave從服務器的配置

        同樣修改位于/etc/my.cnf目錄下的配置

        #在[mysqld]中添加: server-id=2relay-log=slave-relay-bin relay-log-index=slave-relay-bin.index #replicate-do-db=master   #server-id 服務器唯一標識,如果有多個從服務器,每個服務器的server-id不能重復,跟IP一樣是唯一標識,如果你沒設置server-id或者設置為0,則從服務器不會連接到主服務器。 #relay-log 啟動MySQL二進制日志,可以用來做數據備份和崩潰恢復,或主服務器掛掉了,將此從服務器作為其他從服務器的主服務器。 #replicate-do-db 指定同步的數據庫,如果復制多個數據庫,重復設置這個選項即可。若在master端不指定binlog-do-db,則在slave端可用replication-do-db來過濾。 #replicate-ignore-db 不需要同步的數據庫,如果有多個數據庫,重復設置這個選項即可。 #其中需要注意的是,replicate-do-db和replicate-ignore-db為互斥選項,一般只需要一個即可。

        通過命令重啟mysql服務

        service mysql restart

        連接主數據庫

        #連接master主服務器 mysql> change master to master_host='103.246.246.225',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master-bin.000001',master_log_pos=120;#master_host對應主服務器的IP地址。 #master_port對應主服務器的端口。 #master_log_file對應show master status顯示的File列:master-bin.000001。 #master_log_pos對應show master status顯示的Position列:120。

        啟用slave同步數據

        #啟動slave數據同步 mysql> start slave;#停止slave數據同步(若有需要) mysql> stop slave;

        查看slave信息

        通過命令show slave statusG;查看slave信息

        實現MySQL的主從復制

        Slave_IO_Running和Slave_SQL_Running都為yes,則表示同步成功。

        測試

        實現MySQL的主從復制

        在隨便一張數據表中插入一筆數據

        實現MySQL的主從復制

        查看從數據庫相應表

        實現MySQL的主從復制

        可以查看到,從數據庫已成功同步相應數據!!

        想了解

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久久无码精品亚洲日韩蜜臀浪潮| 国产精品无码久久久久久| 亚洲精品国产美女久久久| 在线人成精品免费视频| 久久精品国产网红主播| 午夜一级日韩精品制服诱惑我们这边| 精品国产v无码大片在线观看| 国产精品免费久久久久久久久| 99re国产精品视频首页| 久久精品九九亚洲精品| 亚洲精品国产品国语在线| 欧美日韩国产成人高清视频,欧美日韩在线精品一 | 国产成人久久精品激情| 精品无人区无码乱码大片国产| 国产高清在线精品一区| 色久综合网精品一区二区| 亚洲精品人成无码中文毛片| 高清在线亚洲精品国产二区| 精品爆乳一区二区三区无码av| 亚洲精品偷拍视频免费观看| 久久精品这里只有精99品| 精品久久久久久国产免费了| 国产69精品久久久久99| 亚洲日本精品一区二区| 女人香蕉久久**毛片精品| 国产伦精品一区二区三区女 | 久久国产精品免费一区| MM1313亚洲精品无码| 午夜精品免费在线观看| 欧美巨大黑人精品videos| 久久国产精品99精品国产987| 高清在线亚洲精品国产二区| 99re66热这里只有精品| 国产精品久久国产精品99盘| 精品一区二区三区在线视频| 久久这里只有精品首页| 中文字幕亚洲精品资源网| 国产成人精品免费视频大全| 国产精品国产三级在线专区| 国产乱子伦精品免费视频| 久久精品国产黑森林|