1. 程式人生 > >MySQL 8.0主從(Master-Slave)配置

MySQL 8.0主從(Master-Slave)配置

MySQL 主從複製的方式有多種,本文主要演示基於基於日誌(binlog)的主從複製方式。

MySQL 主從複製(也稱 A/B 複製) 的原理

  • Master將資料改變記錄到二進位制日誌(binary log)中,也就是配置檔案log-bin指定的檔案,
    這些記錄叫做二進位制日誌事件(binary log events);

  • Slave 通過 I/O 執行緒讀取 Master 中的 binary log events 並寫入到它的中繼日誌(relay log);

  • Slave 重做中繼日誌中的事件, 把中繼日誌中的事件資訊一條一條的在本地執行一次,完
    成資料在本地的儲存, 從而實現將改變反映到它自己的資料(資料重放)。

主從配置需要注意的點

  • 主從伺服器作業系統版本和位數一致;

  • Master 和 Slave 資料庫的版本要一致;

  • Master 和 Slave 資料庫中的資料要一致;

  • Master 開啟二進位制日誌, Master 和 Slave 的 server_id 在區域網內必須唯一;

主從配置的簡要步驟
Master 上的配置

  1. 安裝資料庫;
  2. 修改資料庫配置檔案, 指明 server_id, 開啟二進位制日誌(log-bin);
  3. 啟動資料庫, 檢視當前是哪個日誌, position 號是多少;
  4. 登入資料庫, 授權資料複製使用者(IP 地址為從機 IP 地址, 如果是雙向主從, 這裡的還需要授權本機的 IP 地址, 此時自己的 IP 地址就是從 IP 地址);
  5. 備份資料庫(記得加鎖和解鎖);
  6. 傳送備份資料到 Slave 上;
  7. 啟動資料庫;

以下步驟, 為單向主從搭建成功, 想搭建雙向主從需要的步驟:

  1. 登入資料庫, 指定 Master 的地址、 使用者、 密碼等資訊(此步僅雙向主從時需要);
  2. 開啟同步, 檢視狀態;

Slave 上的配置

  1. 安裝資料庫;
  2. 修改資料庫配置檔案, 指明 server_id(如果是搭建雙向主從的話, 也要開啟二進位制
    日誌 log-bin);
  3. 啟動資料庫, 還原備份;
  4. 檢視當前是哪個日誌, position 號是多少(單向主從此步不需要, 雙向主從需要);
  5. 指定 Master 的地址、 使用者、 密碼等資訊;
  6. 開啟同步, 檢視狀態。

1、主節(Master)點配置

修改 Master 的配置檔案/etc/my.cnf

vi /etc/my.cnf

在my.cnf檔案中加入如下配置內容

[mysqld]
log-bin=mysql-bin
server-id=1

2、從節點(Slave)配置

修改 Slave 的配置檔案/etc/my.cnf

vi /etc/my.cnf

在my.cnf檔案中加入如下配置內容

[mysqld]
server-id=2

3、建立用於複製操作的使用者

在主節點建立一個使用者repl,用於從節點連結主節點時使用。

mysql> CREATE USER 'repl'@'192.168.199.198' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.199.198';

重新整理授權表資訊

mysql> flush privileges;

4、獲取主節點當前binary log檔名和位置(position)

mysql> SHOW MASTER STATUS;

這裡寫圖片描述

5、在從(Slave)節點上設定主節點引數

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.199.149',
MASTER_USER='repl',
MASTER_PASSWORD='Ron_master_1',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=856;

6、檢視主從同步狀態

mysql> show slave status\G;

7、開啟主從同步

mysql> start slave;

8、再檢視主從同步狀態

mysql> show slave status\G;

檢視狀態時,可能會出現I/O任務啟動失敗的情況,即如下錯誤:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

這是因為在MySQL主從結構中,從機上的server_id和主機上的server_id不能相同,我們可以看一下主機上的server_id和從機上的server_id是否相同。

mysql> show variables like 'server_id'; 

主機:
這裡寫圖片描述
從機:
這裡寫圖片描述
這裡我們把從機的server_id改成2

mysql> set global server_id=2; #此處的數值和my.cnf裡設定的一樣就行 

9、重新開啟同步並檢視裝態

mysql> start slave;
mysql> show slave status\G;

這裡寫圖片描述
開啟主從之後,如果狀態如上圖所示,那麼說明主從資訊就已經配置好了,接下來我們測試一下在主機上建立一個數據庫,然後在從機上是否能夠同步建立。

首先看一下我們主機和從機除了MySQL本身自帶的資料庫之前目前是沒有任何資料的。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

相關推薦

MySQL 8.0主從Master-Slave配置

MySQL 主從複製的方式有多種,本文主要演示基於基於日誌(binlog)的主從複製方式。 MySQL 主從複製(也稱 A/B 複製) 的原理 Master將資料改變記錄到二進位制日誌(binary log)中,也就是配置檔案log-bin指定的檔案,

MySQL5.6 數據庫主從Master/Slave同步安裝與配置詳解

inux bind 主從配置 希望 master 強調 數據庫主從 ria 配置文件 目錄(?)[+] 安裝環境 操作系統 :CentOS 6.5 數據庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.

Linux下一臺服務器Redis主從復制master-slave配置

conf mas linux -a src fig 客戶 數據操作 ima 主從概念 ?個master可以擁有多個slave,?個slave?可以擁有多個slave,如此下去,形成了強?的多級服務器集群架構 master用來寫數據,slave用來讀數據,經統計:網站的讀寫

MySQL5.6 資料庫主從Master/Slave同步安裝與配置詳解

安裝環境 作業系統 :CentOS 6.5 資料庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.1.2 (Slave) 這裡強調的資料庫的版本,是因為MySQL在5.6之前和之後的安裝方式是不

本地Mysql5.7主從Master/Slave安裝詳解,my.ini檔案配置

找到Master mysql的位置 C:\Program Files\MySQL\MySQL Server 5.7 複製資料夾到你所需要的目錄,我是在D:\Mysql separation\MySQL

MySQL5.6 (5.7)資料庫主從Master/Slave同步安裝與配置詳解

安裝環境 作業系統 :CentOS 6.5 資料庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.1.2 (Slave) 這裡強調的資料庫的版本,是因為MySQL在5.6之前和之後的安裝方式是不一樣的。 本人

Mysql 5.7.1.0 實現主從複製master-slave

開始前 請 保證兩臺主機的 防火牆、防毒軟體 不會阻止兩臺主機的正常通訊 。下面通過6步操作實現主從複製!

Centos 7.4 Mysql 8.0 Setting up master-master replication主-主複製叢集模式

介紹 主主模式基於上一篇文章主從模式,為了排版好看我省略上一篇的內容,以下是連線 https://blog.csdn.net/ciqingloveless/article/details/82866462 上一篇文章配置的是Mater傳送資料到Slave節點,這

mysql master/slave復制原理及配置

通過 除了 基本 logical slave 基礎 緩存 大量 failover 1 復制概述 Mysql內建的復制功能是構建大型,高性能應用程序的基礎。將Mysql的數據分布到多個系統上去,這種分布的機制,是通過將Mysql的某一臺主機的數據復制到其它主機(s

Centos7 安裝mysql-8.0.13rpm

net-tools 裝包 pen reboot sys rpm -ivh cli arc mys yum or rpm? yum安裝方式很方便,但是下載mysql的時候從官網下載,速度較慢。 rpm安裝方式可以從國內鏡像下載mysql的rpm包,比較快。rpm也適合離線安裝

Redis實現主從複製Master&Slave

         由於前段時間公司專案比較趕,一直抽不出時間寫部落格,今天偷空寫一篇吧。前面給大家講解了單機版redis的基本操作,現在繼續給大家講解一下Redis的進階部分,主從複製和讀寫分離。 一、Master&Slave是什麼?          也就是我們所

mysql master/slave複製原理及配置

1 複製概述       Mysql內建的複製功能是構建大型,高效能應用程式的基礎。將Mysql的資料分佈到多個系統上去,這種分佈的機制,是通過將Mysql的某一臺主機的資料複製到其它主機(slaves)上,並重新執行一遍來實現的。複製過程中一個伺服器充當主伺服器,而一個或

redis基礎簡介- 主從複製master & slave

簡介 redis主從複製配置和使用都非常的簡單。通過主從複製可以允許多個 slave 擁有和 master 相同的資料庫副本。 redis主從複製的特點: master可以擁有多個slave 多個 slave 除了可以連線同一個master之外,還可以連

MySQL 8.0 主從同步

一.簡介     一臺伺服器充當主資料庫伺服器,另一臺或多臺伺服器充當從資料庫伺服器,主伺服器中的資料自動複製到從伺服器之中。MySQL主從複製的基礎是主伺服器對資料庫修改記錄二進位制日誌,從伺服器通過主伺服器的二進位制日誌自動執行更新。 環境:   主庫主機(master):

MYSQL-8.0.11-WINX64(免安裝版)配置

OS value auth IE alter ransac 不支持 caching 安裝服務 1. 解壓zip包到安裝目錄 首先,將mysql-8.0.11-winx64.zip 解壓縮到 安裝D:/mysql-8.0.11-winx64 目錄下, 2.配置文件 在安裝根目

實戰MYSQL 8.0.12 主主復制配置過程

blog http 初始 table sock log_file replica block zxvf 實戰MYSQL 8.0.12 主主復制配置過程 搭建環境: Server name IP mysql1 192.168.200.1 mysql2 1

Hadoop3.0: 單機偽叢集配置

目的 本文主要講解的是在單節點下的Hadoop的環境安裝和配置,以幫助您可以快速的使用Hadoop的MapReduce和HDFS前提條件 環境支援 GNU/Linux現已支援開發和生產環境. Hadoop可以在 GNU/Linux叢集上支援2000節點。 Windows現

Windows mysql-8.0.11 master-slave 叢集

一、下載安裝  mysql-8.0.11-winx64.zip:(2)安裝目錄:D:\Servers\mysql-8.0.11-3306(3)資料目錄:D:\Servers\mysql-8.0.11-3306\data(4)配置:D:\Servers\mysql-8.0.11

ActiveMQ 基於zookeeper的主從levelDB Master/Slave搭建以及Spring-boot下使用

tina true listener 報文 string ext 說明 下使用 nat 0:說明   ActiveMQ 5.9.0新推出的主從實現,基於zookeeper來選舉出一個master,其他節點自動作為slave實時同步消息。因為有實時同步數據的slave的存在,

MySQL 8.0復制性能的提升翻譯

行存儲 快捷 試圖 提高 需要 並發 流量 trac sla What’s New With MySQL Replication in MySQL 8.0 MySQL復制從問世到現在已經經歷了多個年頭,它的穩定性和可靠性也在穩步的提高。這是一個不停進化的過程,