1. 程式人生 > >mysql叢集搭建及實現細節

mysql叢集搭建及實現細節

 檔案下載地址:

https://download.csdn.net/download/rainyspring4540/10351695

主-從搭建

準備環境:

OS :Windows7 /10 ;環境變數裡不要包含mysql配置

mysql:mysql-5.5.zip(安裝後預設使用者名稱密碼為root/root)

第1步:準備mysql安裝包zip

將192.168.0.56的資料夾格式的mysql複製兩份,命名為mysqlM(主),mysqlS(從)

準備:

將mysqlM安裝在192.168.0.19機器上,埠3307

將mysqlS安裝在192.168.0.20機器上,埠3308

第2步:安裝主mysql(master)

在19機器上,

修改my.ini檔案

修改basedir和datadir的路徑以及埠是否正確

檢查是否有下列記錄存在,沒有就加上

log-bin=mysql-bin

binlog_format=mixed(不重要)

server-id  =1

安裝並新增使用者

管理員身份進入命令提示符(cmd),

切換到mysql\bin目錄,執行如下:

mysqld install  mysqlm –defaults-file=”mysql目錄/my.ini”  (註冊服務)

net start mysqlm  (啟動服務)

mysql –uroot –proot –P3307  ,回車 進入mysql命令環境 

grant replication slave,reload,super on *.*to

[email protected]'%' identified by 'fulong';(專用於複製的使用者)

flush privileges

show master status\G 執行後,顯示:

日誌檔名file 為mysql-bin-0000112

座標position(日誌讀取位置)107(寫死)

類似如圖的展示

第3步:安裝從mysql(slave)

在20機器上,

修改my.ini檔案

修改basedir和datadir的路徑以及埠是否正確

檢查是否有下列記錄存在,沒有就加上

log-bin=mysql-bin

binlog_format=mixed(不重要)

server-id  =2(別和主mysql的1重複就行,只是叢集中的唯一標識)

安裝

管理員身份進入命令提示符(cmd),

切換到mysql\bin目錄,執行如下:

mysqld install  mysqlm –defaults-file=”mysql目錄/my.ini”  (註冊服務)

net start mysqls  (啟動服務)

mysql –uroot –proot –P3308  ,回車 進入mysql命令環境 

change master to master_host='192.168.0.19',master_user='slave',master_password='root',master_log_file='mysql-bin.000012',master_log_pos=107;

start slave;(啟動ok,完畢)

經驗

1.        從伺服器的寫操作無法同步的主伺服器中

2.        只要記住主伺服器的日誌檔名和日誌讀取位置,從庫只要手動同步好這個讀取位置前的所有主庫的內容,然後啟用主-從搭建即可實現自動將主庫讀取位置之後的所有內容全部複製過來

3.        可以記錄主庫多個讀取點位置和相應的日期檔名,即可實習任意節點的如同2的複製

主-主搭建

技術同主-從搭建,就是反過來在操作一遍即可,讓從庫當做主庫,讓主庫當做從庫

第1步:修改A、B各自的my.ini

在A內

[mysqld]

# for repl

server-id = 1

binlog_checksum=none #如果兩個mysql的版本不一樣則加入此行

log-bin = mysql-bin

auto-increment-increment= 2 # 應設為整個結構中伺服器的總數

auto-increment-offset = 1 # 設定資料庫中自動增長的起點,避免兩臺伺服器資料同步時出現主鍵衝突

##binlog-ignore=mysql   #忽略mysql庫【我一般都不寫】

##binlog-ignore=information_schema   #忽略information_schema庫【我一般都不寫】

##replicate-do-db=aa   #要同步的資料庫,預設所有庫

在B內

[mysqld]

# for repl

server-id = 2

log-bin = mysql-bin

auto-increment-increment= 2

auto-increment-offset = 2

第2步:mysqlA->mysqlB(A是主,B是從)

         先進行mysqlA->mysqlB的主從搭建(A是主,B是從),操作完全同上

第3步:mysqlB->mysqlA(B是主,A是從)

為B建使用者

在B內

建立使用者複製的使用者:

grant replication slave,reload,super on *.*to [email protected]'%' identified by 'fulong';(專用於複製的使用者)

flush privileges;

show master status;

顯示日誌檔名file 為mysql-bin-000012 和position(日誌讀取位置)107(寫死)  ,因為2個庫完全一樣,所有日誌也一樣 

為A指派master

change master to master_host='192.168.0.20',master_user='slave',master_password='root',master_log_file='mysql-bin.000012',master_log_pos=107;

start slave;(啟動)

建議在配置時,AB都配置好後,最後再依次啟動start slave;

常見出錯點

   1、兩臺資料庫都存在db資料庫,而第一臺MySQL db中有tab1,第二臺MySQL db中沒有tab1,那肯定不能成功。

    2、已經獲取了資料的二進位制日誌名和位置,又進行了資料操作,導致POS發生變更。在配置CHANGE MASTER時還是用到之前的POS。

    3、stop slave後,資料變更,再start slave。出錯。

    終極更正法:重新執行一遍CHANGE MASTER就好了。

整合Mysql-Router

exe安裝

下載如:mysql-router-2.0.4-windows-x86-32bit.msi

最好安裝在c盤

其中etc/下的配置檔案需要自己建立

etc/mysqlrouter.conf的內容如下:

# Copyright (c) 2015, 2016, Oracle and/orits affiliates. All rights reserved.

#

# This program is free software; you canredistribute it and/or modify

# it under the terms of the GNU GeneralPublic License as published by

# the Free Software Foundation; version 2of the License.

#

# This program is distributed in the hopethat it will be useful,

# but WITHOUT ANY WARRANTY; without eventhe implied warranty of

# MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE.  See the

# GNU General Public License for moredetails.

#

# You should have received a copy of theGNU General Public License

# along with this program; if not, write tothe Free Software

# Foundation, Inc., 51 Franklin St, FifthFloor, Boston, MA  02110-1301 USA

#

# MySQL Router configuration file

#

# Documentation is available at

#   http://dev.mysql.com/doc/mysql-router/en/

[DEFAULT]

logging_folder = C:\Program Files(x86)\MySQL\MySQL Router 2.0\my

plugin_folder = C:/Program Files(x86)/MySQL/MySQL Router 2.0/lib/

runtime_folder = C:\Program Files(x86)\MySQL\MySQL Router 2.0\my

config_folder = C:/Program Files(x86)/MySQL/MySQL Router 2.0/etc/

[logger]

level = info

# 主節點故障轉移配置

[routing:basic_failover]

# 寫節點地址

bind_address=0.0.0.0

# 寫節點埠

bind_port = 7001

# 模式,讀寫

mode = read-write

# 預設情況下第一臺主資料庫為寫主庫,當第一臺主資料庫DOWN機後,第二臺資料庫被提升為主庫

destinations = 192.168.0.19:3310

# 從節點負載均衡配置

[routing:balancing]

# 繫結的IP地址

bind_address=0.0.0.0

# 監聽的埠

bind_port = 7002

# 連線超時時間

connect_timeout = 3

# 最大連線數

max_connections = 1024

# 後端伺服器地址.預設讀進行輪詢

destinations =192.168.0.19:3311,192.168.0.19:3310

# 模式:讀還是寫

mode = read-only

# If no plugin is configured which starts aservice, keepalive

# will make sure MySQL Router will notimmediately exit. It is

# safe to remove once Router is configured.

[keepalive]

interval = 60

將你事前配置好的mysql叢集(主-主或主-從)服務匹配上面的改改就行了

zip安裝

然後建立配置檔案

效果如下:

內容和“exe安裝”的一樣,略了

啟動或註冊windows服務

參照“常用引數”

啟動:


視窗不要關閉,這是服務哦!

輸入

mysql –uroot –proot –P7001

mysql –uroot –proot –P7002

是能夠連線上的,當然你可以在裡面執行任意sql

這裡需要解釋下,2個mysql是在192.168.0.19的機器上的不同埠服務。

而本地ip為.0.20機器上,並沒有安裝mysql哦(當然要本地使用mysql命令必須有相應的包,但是無需安裝mysql服務的),所以你通過上面命令是訪問的19的mysql哦

細心的會發現mysqlrouter.conf中7001和7002的配置方法不同哦

7001的寫入只配置了一個mysql,7002配置了2個(負載均衡,一個宕機,另一個還能用,使7002更健壯),

常用引數

無論哪個版本

執行mysqlrouter.exe  --help檢視引數

其中常用的如下

mysqlrouter.exe  –c/--config=<path>  啟動mysql router服務

mysqlrouter.exe  --install-service  註冊windows服務

mysqlrouter.exe  --remove-service  解除安裝windows服務

最終方案

由於需求只有兩臺DB,一個主庫,一個是備份庫(容災恢復用);

故採用主主複製,不使用Router

叢集版安裝包思路

A包:Apache一個包

B包:Tomcat1+mysql主1 一個包

C包:Tomcat2+msyql主2 一個包

B和C的安

相關推薦

mysql叢集搭建實現細節

 檔案下載地址:https://download.csdn.net/download/rainyspring4540/10351695主-從搭建準備環境:OS :Windows7 /10 ;環境變數裡不要包含mysql配置mysql:mysql-5.5.zip(安裝後預設使用

完成Ubuntu桌面版的Apache+php+mysql(手動配置LAMP)的全過程實現細節

   最近一個周基本完成了linux系統中LAMP的手動配置,總結一下這個配置過程,方便以後參考。      安裝完桌面版的ubuntu系統,關於時區設定和作業系統中文支援等實現部分在設定裡面都可以完成,就不加闡述。      首先,我的Ubuntu是在虛擬機器裡執行的,這

實戰mysql叢集搭建(二)-- 實現mysql資料庫主從複製

       繼上篇文章《實戰mysql叢集搭建(一)--centos7下二進位制安裝mysql-5.6》之後,本文介紹的是主資料庫伺服器通過日誌檔案的形式,將資料備份到另一臺伺服器,這樣實現資料庫主

zookeeper叢集搭建常用場景實現

本文完整原始碼地址 基於zookeeper的常用用法、分散式鎖、分散式佇列及leader選舉實現 https://github.com/killianxu/zookeeper_example zookeeper叢集搭建 1.linux下安裝jdk yum list java* yum install java

mysql叢集搭建-主從配置

主從形式 mysql主從複製: 一主一從 主主複製 一主多從—擴充套件系統讀取的效能,因為讀是在從庫讀取的; 多主一從—5.7開始支援 聯級複製— 用途及條件 mysql主從複製用途 實時災備,用於故障切換 讀寫分離,提供查詢服務 備份,避免影響業務(備可用性和

Redis叢集安裝--叢集搭建密碼配置遇到的一些問題

網上關於Redis叢集安裝配置的文章很多,也比較全面,但每個人的需求不一樣,本文搭建一個配置密碼的Redis叢集過程其中遇到的一些問題 其中我見到的以這篇文章最詳細https://www.cnblogs.com/hello-daocaoren/p/843190

redis叢集搭建問題的決方法(一)

一、叢集搭建主要配置如下: P61 bind 127.0.0.1//預設ip為127.0.0.1改為其他節點機器可訪問 的ip 註釋掉bind;可以監聽連線當前服務的所有-h 後的ip;例如;綁定了 127.0.0.1,但是登入時使用-h 10.9.17.153

redis叢集搭建問題的決方法(二)

一、準備好有三個主節點的叢集 127.0.0.1:8000> cluster nodes 8ce851252f32fcab268e77d3b3ed976d57d2f498 10.211.55.5:8000 myself,master - 0 0 1 con

[Kafka] Apache Kafka 簡介、叢集搭建配置詳解

前言 kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一個關鍵因素。這些資料通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 Kafk

Es叢集搭建日誌指令碼

1.場景還原     近日,筆者專案中需要做系統化的日誌採集,筆者靈機一動,elk最好不過;今天筆者就es叢集搭建作此分享 2.實現方案 ①筆者整合的是elasticsearch-2.4.6,下載對應的tar包 ②叢集配置 節點1配置: cluster.name:

8分鐘學會Consul叢集搭建微服務概念

Consul介紹: Consul 是由 HashiCorp 公司推出的開源軟體,用於實現分散式系統的服務發現與配置。與其他分散式服務註冊與發現的方案,Consul 的方案更“一站式”,內建了服務註冊與發現框 架、分佈一致性協議實現、健康檢查、Key/Value 儲存、多資料中心方

mysql主從搭建java讀寫分離demo

下載mysql版本5.6 新增使用者mysql和組myGroup useradd mysql groupadd myGroup usermod -G myGroup mysql 初始化mysql使用者名稱密碼: passwd mysql 解壓

Hadoop環境搭建實現倒排索引

目 錄 1.應用介紹 3 1.1實驗環境介紹 3 1.2應用背景介紹 3 1.3應用的意義與價值 4 2.資料及儲存 5 2.1資料來源及資料量 5 2.2資料儲存解決方案 5 3.分析處理架構 5 3.1架構設計和處理方法

Redis叢集方案實現

之前做了一個Redis的叢集方案,跑了小半年,線上執行的很穩定差不多可以跟大家分享下經驗,前面寫了一篇文章 資料線上服務的一些探索經驗,可以做為背景閱讀應用我們的Redis叢集主要承擔了以下服務:1. 實時推薦2. 使用者畫像3. 誠信分值服務叢集狀況叢集峰值QPS 1W左右

redis-cluser叢集搭建使用

    近段時間一直在研究redis-cluser叢集模式,準備將原有的sentinel模式替換掉。但是遲遲沒能落實,一來是現有叢集模式尚能滿足現有應用,怕變更後不穩定固不願輕易改動;二是對redis-cluster的研究還不是很深入,還需要時間。redis-cluster

Redis-Cluster叢集搭建配置

前言 在上一篇文章中隊redis進行了簡單的介紹和安裝,在這一篇文章中進行一個redis-Cluster的叢集搭建。 Redis-Cluster介紹 redis-cluster架構設計 架構細節: (1)所有的redis節點彼此互聯(PIN

RabbitMQ 高可用叢集搭建電商平臺使用經驗總結

面向EDA(事件驅動架構)的方式來設計你的訊息 AMQP routing key的設計 RabbitMQ cluster搭建 Mirror queue policy設定 兩個不錯的RabbitMQ plugin 大型應用外掛(Sharding、Rederation) Queue映象失敗手動同步

Hadoop虛擬機器叢集搭建配置詳解

配置步驟 1.新建Linux虛擬機器 2.安裝jdk,獲得root許可權 3.安裝成功後複製兩個虛擬機器,分別分別命名master、slave1、slave2 4.將三個虛擬機器相互連通,配置SSH無金鑰登入 5.在master中配置Hadoop環境,配置

MySQL環境搭建SQL查詢語句練習

前言 這個學期有資料庫原理這門課,其中很重要的一個部分就是SQL查詢語句的練習。但是自己手寫的查詢語句如果不測試的話是不知道是否正確的,而也不可能指望老師會檢查每個人的查詢語句的正確性。所以只能自力更生,親自實踐,測試查詢語句的正確性。 MySQL環境搭建

hadoop偽分散式叢集搭建配置記錄

如果已經走到了需要搭建hadoop偽分散式的環境了,那說明你至少做好了以下三點建立好了自己的虛擬機器,ip、本機名對映、防火牆、安全子系統都已經配置好了下載jdk1.7及以上版本,並配置好了java環境下載hadoop2.7.0及以上版本,並解壓到、opt/modules(自