推薦
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)