mysql主從復制 火墻_MySQL高級知識(十五)——主從復制

前言:本章主要講解MySQL主從復制的操作步驟。由于環境限制,主機使用Windows環境,從機使用用Linux環境。另外MySQL的版本最好一致,筆者采用的MySQL5.7.22版本,具體安裝過程請查詢相關資料。

1.主從復制的基本原理

slave會從master讀取binlog來進行數據同步。主要有以下三個步驟:

①master將改變記錄到二進制日志(binary log),這些記錄過程叫做二進制日志事件(binary log events)。

②slave將master的binary log events拷貝到中繼日志(relay log)。

③slave重做中繼日志中的事件,將改變應用到自己的數據庫中。MySQL的復制是異步且串行化的。

309b5097406464d5cce3be51a67b8aaa.png

2.主從復制的規則

①每個slave只能有一個master。(一對一)

②每個slave只能有一個唯一的服務器ID。

③每個master可以有多個slave。(一對多)

在主從復制過程中,最大的問題就是延時。

3.一主一從的常見配置

#1.要求。

MySQL版本最好一致且后臺以服務運行。并且保證主機與從機互相ping通。主從配置都在[mysqld]結點下,都是小寫。

#2.主機修改my.ini配置文件

①server-id=1,主機服務器id。(必須)

②必須啟用二進制文件。

log-bin="E:\devSoft\mysql-5.7.22-winx64\data\mysql-bin"

配置該項后,重新啟動mysql服務,可看到如下內容。

75bfcae4f4091c78ad6cad011c5b32a5.png

③啟用錯誤日志。(可選)

log_error ="E:\devSoft\mysql-5.7.22-winx64\data\log\errorlog\log_error.log"

④根目錄、數據目錄。(可選)

#mysql安裝根目錄

basedir="E:\devSoft\mysql-5.7.22-winx64"#mysql數據文件所在位置

datadir="E:\devSoft\mysql-5.7.22-winx64\data"

⑤臨時目錄。(可選)

tmpdir ="E:\devSoft\mysql-5.7.22-winx64\"

⑥read-only=0,表示主機讀寫都可以。

⑦可設置不需要復制的數據庫。(可選)

binlog-ignore-db=mysql

⑧可設置需要復制的數據庫。(可選)

binlog-do-db=databasename

#3.從機修改my.cnf配置文件

①從服務器ID。(必須)

②啟用二進制日志。(可選)

#4.主機與從機都關閉防火墻,其實也可配置ip規則,但關閉防火墻更快速。

#5.在Windows主機上建立賬戶并授權給slave。

a.首先在主機上創建賬戶:

#%表示任何客戶端都可以連接grant all privileges on *.* to slaveaccount(用戶名)@"%(或者指定ip)" identified by '你想設置的密碼' with grant option;

b.然后刷新權限表:

flush privileges;

c.然后授權給slave:

GRANT REPLICATION SLAVE ON *.* TO 'slaveaccount(上面創建的用戶名)'@'從機數據庫ip' IDENTIFIED BY '你想設置的密碼'

d.利用b步驟命令再次刷新權限表。

#6.查詢master的狀態。

467372861bc989bfdddbe61ee1fb8c7b.png

File和Position這兩個字段非常重要,File告訴從機需要從哪個文件進行復制,Position告訴從機從文件的哪個位置開始復制,在從機上配置時需用到。執行完此操作后,盡量不要在操作主服務器MySQL,防止主服務器狀態變化(File和Position狀態變化)。

#7.在Linux從機上配置需要的主機。

CHANGE MASTER TO MASTER_HOST='主機IP',MASTER_USER='salveaccount',MASTER_PASSWORD='主機授權的密碼',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position數字;

#8.啟動從服務器復制功能。

start slave;

啟動復制功能后,需要查看主從復制配置是否成功。

ef870d6a1885dda01c17d41988b5f3a9.png

注:只有當Slave_IO_Running:Yes和Slave_SQL_Running:Yes,這兩個都為Yes的時候,主從復制配置才成功。

#9.進行測試。

①首先在主機上建立數據庫并插入數據。

23cf743eefc10259daf0164344b0ce79.png

c44a2b8cbe1d47247473b0878c3e7cae.png

②在從機中查看是否有相應數據庫。

32696074bce5ca5ed309dc2d84e5220d.png

d53340116aba0179da646bb51e6cc229.png

通過從機上查看相應數據,可知主從復制配置成功。

#10.停止從服務復制功能。

stop slave;

4.總結

#1.主從復制的配置,大部分都在主機上,注意查看相關步驟。

#2.這里將主從機的防火墻都關閉是為了更好的演示,實際生產環境中一般不會出現windows主機和linux從機這種情況,因此不應該關閉防火墻,而是根據具體情況配置防火墻規則。

by Shawn Chen,2018.6.30日,下午。

相關內容

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529868.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529868.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529868.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python在人工智能領域的應用論文_Python的應用領域主要在人工智能方面。-智慧樹計算機專業導論章節答案...

計算機專業導論:Python的應用領域主要在人工智能方面。【?ж???】A:錯B:對計算機專業導論章節測試答案:對更多相關問題2020年直流電弧特性虛擬仿真實驗智慧樹章節測試答案電力電子技術(山東聯盟—中國石油大學(華東))_智慧樹_答案中國大學_《說文解字》與上古社…

正則只能出現特定字符_python正則表達式的簡單使用總結

原文作者:小哲,雷鋒網在編程中,經常會涉及到字符串的操作,一個常用的策略就是利用split函數,然后對于特定的字符串進行匹配,但是這種方法格式復雜,可復用性較差。正則表達式是處理字符串匹配一個…

MySQL配置日志服務器_mysql配置數據庫日志

mysql配置數據庫日志云服務器(Elastic Compute Service,簡稱ECS)是阿里云提供的性能卓越、穩定可靠、彈性擴展的IaaS(Infrastructure as a Service)級別云計算服務。云服務器ECS免去了您采購IT硬件的前期準備,讓您像使用水、電、天然氣等公共資源一樣便捷…

python外星人入侵不顯示子彈_【Python】python外星人入侵,武裝飛船,代碼寫好后,不顯示子彈...

按照書上寫的武裝飛船,寫到能夠左右移動了,但到了射擊(裝子彈)時候,按照書上的代碼照搬了,運行時沒顯示代碼有問題,但就是按了空格鍵,不見有子彈,其他都正常。代碼:alien_invasion.p…

python常見的異常類有哪些_Python常見異常類型

標簽:常見 nic 警告 werror pytho 無效 本地變量 計算 pointBaseException     所有異常的基類SystemExit             解釋器請求退出KeyboardInterrupt          用戶中斷執行(通常是輸入^C)Exc…

mysql dos 下切換連接_如何在dos下連接進入mysql對數據庫進行操作

一、:windowsR 進入命令命令提示符輸入 net start mysql若出現系統錯誤,要將命令提示符以管理員身份運行若出現不是內部指令,進入下面環境變量設置界面,配置path路徑1.進入系統查看界面,點擊高級系統設置2&#xff0c…

mysql二級緩存redis_SpringBoot+Mybatis+redis(二級緩存)搭建

剛剛開始接觸Spring Boot,因為極簡單的配置開發,搭建一個通用的Spring BootMybaitisredis的開發框架。一、用maven構建項目,pom.xml文件如下:org.springframework.bootspring-boot-starter-parent1.5.1.RELEASEorg.springframewor…

mysql自定義兩個條件排序_使用MySQL中的兩個不同列進行自定義排序?

為此,將ORDER BY子句與CASE語句一起使用。讓我們首先創建一個表-mysql> create table DemoTable1610-> (-> Marks int,-> Name varchar(20)-> ) ;使用插入命令在表中插入一些記錄-mysql> insert into DemoTable1610 values(85,John);mysql> in…

java獲取文件大小_Java中獲取文件大小的詳解及實例代碼

Java 獲取文件大小今天寫代碼時需要實現獲取文件大小的功能,目前有兩種實現方法,一種是使用File的length()方法;另外一種是使用FileInputStream的available()方法,當InputStream未進行read操作時,available()的大小應該…

java訪問權限friendly_Java的訪問權限

一.Java訪問權限飾詞(access specifiers)Java有public、protect、friendly、private四種訪問權限,并且這四訪問權限的訪問范圍越來越小。1. friendly1) 果一個class內的數據成員或方法沒有任何權限飾詞,那么它的缺省訪問權限就是f…

java 0 255_java – 什么(float)(par4 16255)/ 255.0F;意思?

帶alpha通道的RGB(通常稱為RGBA或aRGB)是四個字節打包成一個整數.AAAAAAAARRRRRRRRBBBBBBBBGGGGGGGG // the original par4, each char represents one bit.// where ARBG stands for alpha, red, blue and green bit.shift和運算符用于檢索每個字節.例如,par4>> 16&…

java ie下載文件名亂碼問題_php中強制下載文件的代碼(解決了IE下中文文件名亂碼問題)...

中間遇到一個問題是提交的中文文件名直接放到header里在IE下會變成亂碼,解決方法是將文件名先urlencode一下再放入header,如下。$file_name urlencode($_REQUEST[filename]);header("Pragma: public"); header("Expires: 0");heade…

java如何獲得當前路徑_在java中如何得到當前路徑

歸納一些網上取java路徑的方法:注明:如果從ANT啟動程序,this.getClass().getResource("")取出來的比較怪,直接用JAVA命令行調試就可成功。得到classpath和當前類的絕對路徑的一些方法獲得CLASSPATH之外路徑的方法&#…

java繼承總結_JAVA筆記:Java中的繼承總結

繼承:在Java中使用extends關鍵字來實現類的繼承 ,extends意思就是派生,所以子類也叫派生類,繼承的主要目的是擴展類的內容操作格式: class A{}; class B extends A{};子類B可以繼承父類A中的公用方法,也可…

java正則表達式 類_java正則表達式相關類的使用

import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestZhengZe {public static void main(String[] args) {//匹配數字Pattern mac Pattern.compile("-?(0|([1-9][0-9]*))(\\.[0-9])?");System.out.println(mac.matcher("101.00…

Java轉置_Java實現單鏈表的逆轉置

單鏈表逆轉置的遞歸與非遞歸方式package link.reverse;// 定義一個單鏈表class Node {//變量private int record;//指向下一個對象private Node nextNode;public Node(int record) {this.record record;}public int getRecord() {return record;}public void setRecord(int re…

單利 java_Java設計模式-單利模式

單例模式作為對象的創建模式,單例模式確保其某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例,這個類稱為單例類。單例模式有以下特點:1、單例類只能有一個實例2、單例類必須自己創建自己的唯一實例3、單例類必須給其…

esp8266接7735_基于8266的ESPEASY固件接入HASS的教程(可無腦接入各類傳感...

首先國際慣例,先放上成果:QQ圖片20170629160143.png (172.48 KB, 下載次數: 3)2017-6-29 16:03 上傳如上圖所示,樓主把顆粒物傳感器和二氧化碳傳感器加入到了HASS里,當然,論壇之前也有諸位大神提供過類似固件和方法來實現這一目標…

java定義private_java9開始——接口中可以定義private私有方法

在傳統的Java編程中,被廣為人知的一個知識點是:java Interface接口中不能定義private私有方法。只允許我們定義public訪問權限的方法、抽象方法或靜態方法。但是從Java 9 開始,Interface 接口中允許定義私有方法和私有靜態方法。下面我們就來…

java poi生成excel文件_java poi 導出Excel文件

1,導包 poi-3.9-XXX.JAR2, 創建一個實體對象public class Student implements Serializable {/****/private static final long serialVersionUID 1L;private int id;private String name;private int age;private Date borth;public Student(int id, String name…