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)
對錶的操作可自行進行測試。
相關推薦
CentOS7中MySQL5.7 主主互備配置
CentOS7 中 MySQL 5.7 主主互備配置 先從MySQL對資料庫複製的能力看,MySQL支援單向、非同步的複製。複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位制日誌檔案,並維護日誌檔
centos7中MySQL5.7+keepalived雙主熱備
mysql主主備份原理:複製過程中一個伺服器充當主伺服器,另一個或多個充當從伺服器,主伺服器將更新寫入二進位制日誌,並維護日誌檔案的一個索引以跟中日誌迴圈。當一個從伺服器連線到主伺服器時,它通知主伺服器上次更新的位置,從伺服器就接收主伺服器從那時起發生的變更,然後封鎖並等待主
Centos7中MySQL5.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>
修改wampsever中MySql5.7.14默認為空的密碼
ges ati roo mysql5 base mysql 5.7 database xxxxx 5.7 ①打開WAMP找中MySql控制臺,提示輸入密碼,開始密碼為空,直接按回車 ②輸入【use mysql】,控制臺提示【Database changed】 ③輸入【upd
Centos7 下Mysql5.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