Percona-XtraDB-Cluster 5.7版本(PXC)集群部署

来源:https://www.cnblogs.com/liucx/archive/2019/12/28/12112301.html
-Advertisement-
Play Games

PXC(Percona-XtraDB-Cluster)5.7版本集群部署 Centos 7.3系統部署Mysql 集群 PXC三個節點分別執行和安裝(1)配置hosts cat /etc/hosts172.16.2.10 node1172.16.2.11 node2172.16.2.12 node3 ...


 PXC(Percona-XtraDB-Cluster)5.7版本集群部署

Centos 7.3系統部署Mysql 集群

PXC三個節點分別執行和安裝
(1)配置hosts

cat /etc/hosts
172.16.2.10 node1
172.16.2.11 node2
172.16.2.12 node3

(2)依賴

yum –y remove mariadb-* 
yum -y install gcc gcc-c++ perl-IO-Socket-SSL.noarch perl-DBD-MySQL.x86_64 perl-Time-HiRes openssl* openssl-devel  libcurl-devel wget

(3)下載Percona XtraBackup 2.4

wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
yum -y localinstall percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm

(4)安裝Percona Release和Socat

yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
wget http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz tar zxvf socat-1.7.3.2.tar.gz cd socat-1.7.3.2 ./configure make -j 4 && make install

(5)安裝PXC 5.7二進位包

wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.21-29.26/binary/tarball/Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1:102.tar.gz

tar -xf Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1_102.tar.gz -C /usr/local/
mv /usr/local/Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1\:102 /usr/local/mysql
useradd -s /sbin/nologin mysql
chown mysql.mysql -R /usr/local/mysql
mkdir -p /data/mysql/data
chown mysql.mysql -R /data/mysql/
echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh​
source /etc/profile.d/mysql.sh​

先配置第一臺機器,併成功啟動,在配置其他兩台
在第一臺主機上創建配置文件:

vim /etc/my.cnf
[client]
port = 3306
socket= /data/mysql/mysql.sock
default-character-set=utf8

[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql/data
pid-file = /data/mysql/mysql.pid
character-set-server=utf8
init_connect = 'SET NAMES utf8'
log-bin=/data/mysql/log_bin
server-id = 101
innodb_buffer_pool_size = 100M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_home_dir = /data/mysql
innodb_file_per_table=1
skip-name-resolve
port = 3306
socket = /data/mysql/mysql.sock
user=mysql
log_error=mysql_error.log

#pxc
binlog_format=ROW
wsrep_cluster_address=gcomm://172.16.2.10,172.16.2.11,172.16.2.12 #三個節點都保持一樣
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_node_address=172.16.2.10 #根據不同的node ip進行修改
wsrep_slave_threads=2
wsrep_cluster_name=pxc_mysql #同一個cluster此值需要一致
wsrep_sst_method=xtrabackup-v2
wsrep_node_name=node_1 #不同節點修改為不同的名字
innodb_autoinc_lock_mode=2
wsrep_sst_auth="sstuser:pxcmysql"
log-slave-updates

[mysql]
no-auto-rehash
default-character-set=utf8


把這個文件寫好了,傳到其他兩台機器的 /etc 下麵,
每個主機的server-id 和wsrep_node_address、wsrep_node_name保持不同即可

初始化mysql5.7:(初始化只在第一個節點執行)

mysqld --initialize --user=mysql --datadir=/data/mysql/data

初始化參數使用--initialize-insecure,這樣不會設置初始化root密碼,如果是 --initialize的話,會隨機生成一個密碼
grep "password" /data/mysql/data/error.log


啟動pxc mysql5.7
​node1上:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --wsrep-new-cluster --user=mysql &

新建傳送用戶:​

grant all privileges on *.* to 'sstuser'@'localhost' identified by 'pxcmysql';(一定要localhost)
flush privileges;

查看集群狀態

show status like 'wsrep%';

其他節點安裝,具體步驟查看前面步驟
scp percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm 172.16.2.11:/root
scp percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm 172.16.2.12:/root
scp Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1_102.tar.gz 172.16.2.11:/root
scp Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1_102.tar.gz 172.16.2.12:/root
scp /etc/my.cnf 172.16.2.11:/etc/
scp /etc/my.cnf 172.16.2.12:/etc/

node2和node3啟動(無需初始化)

/usr/local/mysql/bin/mysqld_safe  –-defaults-file=/etc/my.cnf &

 

在PXC部署集群多次踩坑:

(1)按照官網文檔/etc/init.d/mysql bootstrap-pxc  啟動一直失敗

解決:一開始懷疑是PXC版本問題,換了二個5.7小版本還是一樣報錯,最後使用/usr/local/mysql/bin/mysqld_safe 模式啟動成功

(2)啟動jnode3節點報錯:[ERROR] WSREP: Command did not run: wsrep_sst_xtrabackup-v2 --role 'donor' --address '172.16.2.12:4444/xtrabackup_sst

解決:修改node3配置文件,用wsrep_sst_method = rsync啟動,正常啟動後同步數據完成,shutdown node2;然後修改node2的wsrep_sst_method = xtrabackup-v2,可以正常啟動數據同步

 以上解決方法希望對你有所幫助,解決方法來之不易,作者多次實驗。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、休眠概述 休眠,簡而言之就是設備在不需要工作的時候把一些部件、外設關掉(掉電或讓它進入低功耗模式)。 為什麼要休眠呢?一言以蔽之:省電。 休眠分主動休眠和被動休眠。主動休眠:比如我電腦不用了,就通過設置讓系統進入休眠模式;被動休眠:系統檢測到自己閑的慌,為了節約故,自己就休眠去了。 廢話不敘。 ...
  • 配置虛擬主機 vi /usr/local/apache2.4/conf/httpd.conf 搜索httpd-vhost,刪除行首#號 vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmi ...
  • 碰到問題解決過程 剛在一個新的機器上裝node環境時,要用一個nrm管理鏡像源時。報了一個錯,如圖1 然後去網上查,說是許可權的問題,執行命令 可以解決問題。 然後我就按照操作做了,又報錯了。這次的錯誤如圖2: 錯誤說是具體策略覆蓋了剛更新的策略,程式仍然保持原有的執行策略。反正最終結果就是未生效唄, ...
  • 以下內容為使用樹莓派搭建伺服器的過程,因為個人還沒有搭建完成,所以僅更新出已完成的部分,至於未完成的部分,以後會持續更新。 具體分為這幾個階段: 1.給樹莓派安裝系統 2.使用電腦連接控並制樹莓派 3.配置網站伺服器環境 4.添加網站源碼 5.配置網站環境設置 【0x01:給樹莓派安裝系統】 我是用 ...
  • 在正式生產資料庫中,因為客戶現場管理不規範產生了一條錯誤數據,由於自身睡眠不佳加上客戶方言表達,將編號記錯,在沒有備份的情況下,直接連遠程資料庫執行了delete操作。 由於備份設置的是每日0點,當天晚上九點鐘的數據尚未進行備份,所以網上大多數基於備份文件的恢復就無法奏效。 上一篇博文(查詢數據... ...
  • 有些資料庫本身,會記錄所有歷史的SQL命令。比如:mysql和pgsql都有專門的log文本文件來存放所有歷史的SQL命令; 也有些資料庫在保存log文本的同時,還保留最近的N條SQL命令在資料庫里,以方便查詢。 SQL Server並沒有這樣的實現,只有sys.dm_exec... ...
  • L用的是Centos7.5以上,主要是NMP三組件的安裝記錄。 通常會先安裝一下依賴: yum install -y pcre-devel zlib-devel openssl-devel 使用yum或rpm方式安裝MariaDB # 保留緩存軟體包#sudo vim /etc/yum.conf c ...
  • 文章目錄1、Yarn介紹2、Yarn架構2.1 、ResourceManager2.2 、ApplicationMaster2.3 、NodeManager2.4 、Container2.5 、Resource Request 及 Container2.6 、JobHistoryServer2.7、 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...