天天看點

CentOS 7.9,二分鐘搭建好MySQL8.0-PXC叢集(實操不說原理)

作者:街頭角落裡
CentOS 7.9,二分鐘搭建好MySQL8.0-PXC叢集(實操不說原理)

推薦

CentOS 7.9伺服器,一分鐘部署完mysql8.0

Mycat1.6版部署mysql讀寫分離

Mycat2版部署mysql讀寫分離

一/環境準備

1/CentOS 7.9

2/Percona XtraDB Cluster 8.0程式包

3/3 台 CentOS 7.9

二/安裝yum源和下載下傳包

安裝 percona-release
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
下載下傳安裝包
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/#
https://downloads.percona.com/downloads/Percona-XtraDB-Cluster-80/Percona-XtraDB-Cluster-8.0.30/binary/redhat/7/x86_64/Percona-XtraDB-Cluster-8.0.30-raff6a8b-el7-x86_64-bundle.tar           

三/安裝PXC

# 安裝 pxc
tar -xvf Percona-XtraDB-Cluster-8.0.27-rac35177-el7-x86_64-bundle.tar 
安裝
sudo yum install -y percona-xtradb-cluster-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-full-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-shared-8.0.30-22.1.el7.x86_64.rpm Percona-XtraDB-Cluster-8.0.30-raff6a8b-el7-x86_64-bundle.tar  percona-xtradb-cluster-garbd-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-shared-compat-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-client-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-icu-data-files-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-test-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-debuginfo-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-mysql-router-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-devel-8.0.30-22.1.el7.x86_64.rpm percona-xtradb-cluster-server-8.0.30-22.1.el7.x86_64.rpm           

四/建立檔案和權限

mkdir /data/mysql/
chown -R mysql:mysql /data/mysql/           

五/配置檔案

第一台伺服器

[root@ab_10_0_0_225 data]# cat /etc/my.cnf 
[client]
socket=/var/lib/mysql/mysql.sock
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
server-id=225
datadir=/data/mysql/data
socket=/var/lib/mysql/mysql.sock
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld/mysqld.pid

#連接配接數
max_connections = 2000

#innodb使用記憶體
innodb_buffer_pool_size = 1G

#utf8mb4編碼
character-set-client-handshake = FALSE
character-set-server = utf8mb4
init_connect='SET NAMES utf8mb4'

#開啟log-bin日志
log-bin-trust-function-creators=1
#開啟事件排程器
event_scheduler=1

#慢查詢開啟
slow_query_log=1
#慢查詢時間為2s
long_query_time=2

#緩沖的資料hash到不同的緩沖池中,并行的記憶體讀寫
innodb_buffer_pool_instances = 2
#該變量将資料存導入到記憶體中,可以減少大量的IO資源消耗。當事務送出時,儲存資料,後續在刷
#新到磁盤。
innodb_log_buffer_size = 128M

#在一個日志組每個日志檔案的位元組大小,日志檔案的總大小
innodb_log_file_size = 256M
#修改InnoDB為獨立表空間模式,每個資料庫的每個表都會生成一個資料空間。
innodb_file_per_table =ON
#庫裡的表特别多的情況使用,這個值預設是300M
innodb_open_files=2M
#限制了一次有多少線程能進入核心,0表示不限制進入核心的數量
innodb_thread_concurrency=0

#開啟log-bin日志
log-bin-trust-function-creators=1
#開啟事件排程器
event_scheduler=1
#關閉大小寫
lower_case_table_names=1

#pxc

binlog_expire_logs_seconds=604800

wsrep_provider=/usr/lib64/galera4/libgalera_smm.so
#配置叢集資訊位址如wsrep_cluster_address=gcomm://10.1.1.225,10.1.1.226,10.1.1.227
wsrep_cluster_address=gcomm://
binlog_format=ROW
wsrep_slave_threads=8
wsrep_log_conflicts
innodb_autoinc_lock_mode=2
#叢集的名字,必須是統一的
wsrep_cluster_name=pxc-cluster-sz-abc
#該節點的名稱
wsrep_node_name=pxc-abc-node-sz-1
#該節點的位址
wsrep_node_address=10.1.1.225
pxc_strict_mode=ENFORCING
wsrep_sst_method=xtrabackup-v2
#叢集同步的使用者名密碼,這裡沒用到
#wsrep_sst_auth=abc:666666
#啟用加密自動配置的變量
pxc-encrypt-cluster-traffic=OFF
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION           

六/修改使用者

# 重新開機 MySQL
systemctl restart mysql.service

# 檢視初始密碼
grep 'temporary password' /data/mysql/mysqld.log

#修改密碼
#8.0 需要先用這條指令
alter user 'root'@'localhost' identified by '1234567890';
CREATE USER 'root'@'%' IDENTIFIED BY '1234567890'; 
GRANT ALL ON *.* TO 'root'@'%'; 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234567890';
#密碼永不過期的
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234567890' PASSWORD EXPIRE NEVER;
 
# 檢視 MySQL 版本
select @@version ;

# 更新權限
flush privileges;           

七/安裝二三台伺服器

安裝步驟同上可得。

注:修改項
1/my.cnf檔案内容;
#id一般ip的最後個位就行
server-id=226
#把所有叢集ip寫入,等二,三台伺服器部署好,mysql啟來了再修改第一台伺服器的配置
wsrep_cluster_address=gcomm://10.1.1.225,10.1.1.226,10.1.1.227
#叢集的名字,必須是統一的
wsrep_cluster_name=pxc-cluster-sz-abc
#該節點的名稱pxc-abc-node-sz-2; pxc-abc-node-sz-3
wsrep_node_name=pxc-abc-node-sz-2
#該節點的位址10.1.1.226,10.1.1.227
wsrep_node_address=10.1.1.226           

八/檢視叢集

# 重新開機 MySQL
systemctl restart mysql.service

#檢視叢集狀态,可以看到叢集中有3個節點
root@localhost 16:43: [(none)]>show global status like 'wsrep_cluster_%';
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_weight     | 3                                    |
| wsrep_cluster_conf_id    | 3                                    |
| wsrep_cluster_size       | 3                                    |
| wsrep_cluster_state_uuid | b30f83dd-be99-11ea-b21c-b61232d3c9ee |
| wsrep_cluster_status     | Primary                              |
+--------------------------+--------------------------------------+
5 rows in set (0.00 sec)
root@localhost 16:49: [(none)]>show global status like '%wsrep_ready%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_ready   | ON    |
+---------------+-------+
1 row in set (0.00 sec)           

九/使用Navicat檢視

CentOS 7.9,二分鐘搭建好MySQL8.0-PXC叢集(實操不說原理)
上一篇: Web架構結構

繼續閱讀