1. 程式人生 > >CentOS7中MySQL5.7 主主互備配置

CentOS7中MySQL5.7 主主互備配置

CentOS7 中 MySQL 5.7 主主互備配置

​ 先從MySQL對資料庫複製的能力看,MySQL支援單向、非同步的複製。複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位制日誌檔案,並維護日誌檔案的一個索引以跟蹤日誌迴圈。當一個從伺服器連線到主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知下一次更新。

​ 現在公司中很多都用到了雲伺服器,無論是伺服器還是資料庫,但是我們在開發階段一般還是公司自己的伺服器,在沒有dba的情況就需要開發人員自己去搭建資料庫叢集,但是對於小公司來說,兩臺資料庫伺服器互為主備也許對開發人員來說就是比較理想的。當然有運維同事幫忙的話會更好,使用keepalived搭建個高可用的伺服器叢集(後面再去研究如何使用keepalived搭建)。下面我們就介紹下CentOS7中如何搭建MySQL主主互備伺服器。

1. 主機環境與軟體版本

  • 主機系統:CentOS7 64位
  • 兩個虛擬機器:

​ 主機(master-1):IP地址: 192.168.1.102

​ 主機(master-2):IP地址: 192.168.1.103

  • MySQL版本:mysql-5.7.22

  • 虛擬機器版本:VMware® Workstation 12.5.7 build-5813279

2. MySQL 安裝

3. MySQL 配置

既然是主主互備,就說明兩個資料庫都要對外進行服務,為了防止id重複,我們需要在配置檔案中對兩個資料庫的自增長的offset設定為不同的值,具體如下:

master-1伺服器中檔案/etc/my.cnf 中新增如下配置:

server-id=1                             #server的唯一標識
auto_increment_offset=1                  #自增id起始值
auto_increment_increment=2                #每次自增數字

log-bin = mysql-bin                           #開啟二進位制功能,MASTER主伺服器必須開啟此項
max_binlog_size=1024M                          #binlog單檔案最大值
replicate-ignore-db = mysql #忽略不同步主從的資料庫 replicate-ignore-db = information_schema replicate-ignore-db = performance_schema replicate-ignore-db = test

master-2伺服器中檔案/etc/my.cnf 中新增如下配置:

server-id = 2                               #server的唯一標識
auto_increment_offset = 2                   #自增id起始值
auto_increment_increment = 2                 #每次自增數字

log-bin = mysql-bin                           #開啟二進位制功能,MASTER主伺服器必須開啟此項
max_binlog_size=1024M                          #binlog單檔案最大值

replicate-ignore-db = mysql                    #忽略不同步主從的資料庫
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = test

4. MySQL 重啟

shell> systemctl restart mysqld.service

5. 主從配置

5.1 新增主從同步賬戶

在master-1中新增repl使用者:

mysql> grant replication slave on *.* to 'repl'@'192.168.1.102' identified by '123456';

在master-2中新增repl使用者:

mysql> grant replication slave on *.* to 'repl'@'192.168.1.104' identified by '123456';

5.2 檢視主庫的狀態

在master-1上執行如下命令:

mysql> show master status;

這裡寫圖片描述

在master-2上執行如下命令:

mysql> show master status;

這裡寫圖片描述

5.3 配置同步資料

在master-1上執行如下命令:

mysql> change master to master_host='192.168.1.104',\
master_port=3306,master_user='repl',master_password='123456',\
master_log_file='mysql-bin.000005',master_log_pos=3123;

mysql> start slave;

mysql> show slave status\G;

下面這兩個狀態表示正常:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

在master-2上執行如下命令:

mysql> change master to master_host='192.168.1.102',\
master_port=3306,master_user='repl',master_password='123456',\
master_log_file='mysql-bin.000004',master_log_pos=1918;

mysql> start slave;

mysql> show slave status\G;

下面這兩個狀態表示正常:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

說明

master_log_file: master的日誌檔案,則master-1互指master-2中的資料,根據上圖可以得到此值。

master_log_pos: master的日誌檔案起始位置,則master-1互指master-2中的資料,根據上圖可以得到此值。

6. 測試主從同步

在master-1上執行如下sql指令碼進行測試:

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+
rows in set (0.00 sec)

mysql> create database test1;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

| test01             |

+--------------------+
rows in set (0.00 sec)

同時檢視master-2中是否建立了資料庫test1

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

| test1             |

+--------------------+
rows in set (0.00 sec)

對錶的操作可自行進行測試。

相關推薦

CentOS7MySQL5.7 配置

CentOS7 中 MySQL 5.7 主主互備配置 ​ 先從MySQL對資料庫複製的能力看,MySQL支援單向、非同步的複製。複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位制日誌檔案,並維護日誌檔

centos7MySQL5.7+keepalived雙

mysql主主備份原理:複製過程中一個伺服器充當主伺服器,另一個或多個充當從伺服器,主伺服器將更新寫入二進位制日誌,並維護日誌檔案的一個索引以跟中日誌迴圈。當一個從伺服器連線到主伺服器時,它通知主伺服器上次更新的位置,從伺服器就接收主伺服器從那時起發生的變更,然後封鎖並等待主

Centos7MySQL5.7服務群集(實現主從復制、讀寫分離功能)

row ide 2.0 fire tcp sla code factory ODB 根據上一博文我們了解到在MySQL群集中主從復制服務詳解,本文將結合MySQL服務器主從復制同步服務實現讀寫分離操作。 為什麽要實現讀寫分離操作? 在MySQL數據庫中,在存儲數

Centos7 mysql5.7 用戶 創建 、授權、遠程登錄

表示 ati ins 進行 access centos then word style 1、添加用戶跟以往版本不同,MySQL5.7 mysql.user表沒有password字段,這個字段改成了 authentication_string;這裏我們使用命令進行創建用戶:

CentOS7安裝MySQL5.7數據庫以及配置

oracle 數據庫 固態硬盤 c語言 最大的 一、MySQL5.7主要特性: 原生架構支持centos7的Systemd (1.)更好的性能:對於多核的CPU、固態硬盤、鎖有著更好的優化、更好的innoDB存儲引擎。 (2.)更為健壯的復制功能:復制帶來了數據完全不丟失的方案,傳

MySQL5.7一從(多源複製)同步配置

MySQL5.7多主一從(多源複製)同步配置(抄襲) 原文地址:https://my.oschina.net/u/2399373/blog/2878650 多主一從,也稱為多源複製,資料流向: 主庫1 -> 從庫s 主庫2 -> 從庫s 主庫n -> 從庫s 應用場

mysql5.7 yum安裝及主從配置(從庫只讀),不重啟庫新增從庫配置

yum -y remove mysql wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm rpm -ivh mysql57-community-release-el7-8.noarch.rpm yum -y ins

Centos6.5 Mysql5.7一從 (多臺主機上拉取的資料 合併到同一臺數據庫)

我也是多文件參考,摸著石頭過河,花了不少時間,不過最終是配置成功(在配置的時候如果遇到錯誤,請自己找度娘解決) 以下是轉過來的部分做了修改:尊重原創,原創無價 #### 解決思路: 1、主資料庫使用Innodb引擎,並設定sql_mode為 NO_AUTO_CREATE_USER 2、從

centos6.5 MySQL5.7一叢 同步資料 --------同步的資料不再同一個資料庫是分開的

                    宣告:在做的時候出現的錯誤請檢視百度,解決,大體思路是這

centos7 安裝MySQL5.7遇到的問題和解決方法

centos7預設不支援mysql(原因大家都懂),預設支援的是mariadb,mariadb是mysql一個開源分支。 1、解除安裝mariadb,否則安裝mysql會出現衝突 執行命令 rpm -qa | grep mariadba 列出所有被安裝的mariadb

MySQL5.7架構搭建(基於GTID方式)

系統:Centos6.5資料庫IP:192.168.0.103、192.168.0.104資料庫埠:都是3306搭建MySQL步驟 略(詳見:https://blog.csdn.net/xiaoyi23000/article/details/53200205)1、在103節點

CentOS下MYSQL資料庫的配置

       關於MYSQL資料庫的主主備份和主從備份,查詢了很多資料,根據大牛們的資料配置了好幾遍,終於在自己的環境中配置起來了。先前沒有配置起來的原因可能是大家的配置環境不一樣造成的,所以網上有很多資料,雖然有些大同小異,但是配置不起來。MYSQL支援單向、非同步複製,

MHA + mysql5.7二從配置安裝日誌

MHA + mysql5.7 一主二從配置安裝步驟 1.安裝mysql5.7 2.配置主從複製開啟gtid,半同步複製 3.配置三臺機器的互信 4.安裝MHA-node節點 5.安裝MHA-manger節點 6.利用MHA工具檢測SSH 7.利用MHA工具檢測主

CentOS7 安裝Mysql5.7

-perm get his 開放 comm 一個 password ref wal 1 安裝 GCC yum install gcc yum install tcl 2 安裝wget yum install wget 3 下載mysql源安裝包 shell>

修改wampseverMySql5.7.14默認為空的密碼

ges ati roo mysql5 base mysql 5.7 database xxxxx 5.7 ①打開WAMP找中MySql控制臺,提示輸入密碼,開始密碼為空,直接按回車 ②輸入【use mysql】,控制臺提示【Database changed】 ③輸入【upd

Centos7Mysql5.7.18的安裝和簡單主從

mysql centos7 安裝 Mysql5.7.18的安裝#下載解壓tar包wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gztar -zxvf mysql-5.

centos7安裝 MySQL5.7.19

mysql5.7環境:虛擬機+centos71.下載二進制包,下面mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz鏈接是官網cd /usr/local/srcwget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-

Linux CentOS7 安裝 Mysql5.7.19

tar ice 改密碼 mysql base -- share 密碼 chgrp 1.解壓文件 [[email protected] ~]# tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/

centos7安裝mysql5.7

centos7   mysql5.7我打算在我的centos7.2上面裝一個mysql5.7,我選擇編譯安裝1 要安裝,首先要有安裝包,下載去因為mysql5.7要求boost,所以建議大家盡量選擇自帶boost的mysql源碼包下載來安裝,這樣就不用麻煩單獨安裝boost了.我下載的是mysql-

Centos7.3 mysql5.7 密碼修改及遠程登陸配置

改密碼 遠程 error 遠程連接 連接 safe trie 5.7 sql 修改密碼命令 set password for root@localhost = password(‘admin@123‘); 連接命令 ln -s /usr/local/mysql/bin