200 lines
3.9 KiB
Markdown
200 lines
3.9 KiB
Markdown
|
|
# XtraDB Cluster install
|
|
|
|
## requirement
|
|
### docker
|
|
|
|
### host
|
|
|
|
```hosts
|
|
10.194.64.102 gzii-db-3
|
|
10.194.64.103 gzii-db-4
|
|
10.194.64.104 gzii-app-2
|
|
```
|
|
|
|
### sysctl
|
|
```bash
|
|
modprobe br_netfilter
|
|
lsmod | grep br_netfilter
|
|
echo "br_netfilter" | sudo tee -a /etc/modules-load.d/br_netfilter.conf
|
|
sysctl -w net.bridge.bridge-nf-call-iptables=1
|
|
sysctl -w net.bridge.bridge-nf-call-ip6tables=1
|
|
```
|
|
|
|
### iptables
|
|
```bash
|
|
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
|
|
iptables -A INPUT -p tcp --dport 33060 -j ACCEPT
|
|
iptables -A INPUT -p tcp --dport 4567 -j ACCEPT
|
|
```
|
|
|
|
|
|
```bash
|
|
iptables-save > /etc/iptables/rules.v4
|
|
systemctl restart iptables
|
|
```
|
|
|
|
### firewalld
|
|
|
|
```bash
|
|
firewall-cmd --get-active-zones
|
|
```
|
|
|
|
|
|
```bash
|
|
firewall-cmd --zone=public --add-port=3306/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=4567/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=33060/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=2379/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=4568/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=4444/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=13306/tcp --permanent
|
|
firewall-cmd --zone=public --add-port=6032/tcp --permanent
|
|
firewall-cmd --reload
|
|
|
|
```
|
|
|
|
## cluster
|
|
## node 1
|
|
|
|
### image
|
|
```bash
|
|
gunzip -c percorna.tgz | docker load
|
|
```
|
|
### ssl
|
|
```bash
|
|
mkdir /opt/percorna/config
|
|
```
|
|
|
|
|
|
```my.cnf
|
|
[client]
|
|
ssl-ca = /cert/ca.pem
|
|
ssl-cert = /cert/client-cert.pem
|
|
ssl-key = /cert/client-key.pem
|
|
|
|
[sst]
|
|
encrypt = 4
|
|
ssl-ca = /cert/ca.pem
|
|
ssl-cert = /cert/server-cert.pem
|
|
ssl-key = /cert/server-key.pem
|
|
|
|
[mysqld]
|
|
ssl-ca=/cert/ca.pem
|
|
ssl-cert=/cert/server-cert.pem
|
|
ssl-key=/cert/server-key.pem
|
|
skip_name_resolve
|
|
log-error = /var/lib/mysql/error.log
|
|
wsrep_provider_options="socket.ssl_cert=/cert/server-cert.pem;socket.ssl_key=/cert/server-key.pem;socket.ssl_ca=/cert/ca.pem"
|
|
```
|
|
|
|
|
|
|
|
### etcd
|
|
```bash
|
|
ETCD_HOST=10.192.64.102
|
|
docker run -d \
|
|
--name etcd \
|
|
--net host \
|
|
-v /usr/share/ca-certificates/:/etc/ssl/certs \
|
|
-p 4001:4001 -p 2380:2380 -p 2379:2379 \
|
|
quay.io/coreos/etcd:v3.4.35 \
|
|
/usr/local/bin/etcd \
|
|
--name etcd0 \
|
|
--advertise-client-urls=http://${ETCD_HOST}:2379,http://${ETCD_HOST}:4001 \
|
|
--listen-client-urls=http://0.0.0.0:2379,http://0.0.0.0:4001 \
|
|
--initial-advertise-peer-urls=http://${ETCD_HOST}:2380 \
|
|
--listen-peer-urls=http://0.0.0.0:2380 \
|
|
--initial-cluster-token=etcd-cluster-1 \
|
|
--initial-cluster=etcd0=http://${ETCD_HOST}:2380 \
|
|
--initial-cluster-state=new
|
|
```
|
|
|
|
|
|
|
|
### bootstrap
|
|
|
|
|
|
```bash
|
|
mkpasswd -l 16
|
|
```
|
|
|
|
root password:
|
|
```
|
|
wc97fjvDg:Ywgyad
|
|
```
|
|
|
|
|
|
|
|
|
|
gzii-db-3:
|
|
```bash
|
|
docker run -d \
|
|
-e MYSQL_ROOT_PASSWORD=wc97fjvDg:Ywgyad \
|
|
-e CLUSTER_NAME=pxc-cluster1 \
|
|
--name=gzii-db-3 \
|
|
--net=host \
|
|
-v ./cert:/cert \
|
|
-v ./config:/etc/percona-xtradb-cluster.conf.d \
|
|
-v ./data:/var/lib/mysql:rw \
|
|
percona/percona-xtradb-cluster:8.4.0
|
|
```
|
|
|
|
gzii-db-4:
|
|
```bash
|
|
docker run -d \
|
|
-e MYSQL_ROOT_PASSWORD=wc97fjvDg:Ywgyad \
|
|
-e CLUSTER_NAME=pxc-cluster1 \
|
|
-e CLUSTER_JOIN=gzii-db-3 \
|
|
--name=gzii-db-4 \
|
|
--net=host \
|
|
-v ./cert:/cert \
|
|
-v ./config:/etc/percona-xtradb-cluster.conf.d \
|
|
-v ./data:/var/lib/mysql:rw \
|
|
percona/percona-xtradb-cluster:8.4.0
|
|
```
|
|
|
|
|
|
monitor pass:
|
|
```
|
|
0nz&lzDAxcxet5ta
|
|
```
|
|
|
|
|
|
```sql
|
|
CREATE USER 'monitor'@'%' IDENTIFIED BY 'monitor';
|
|
ALTER USER 'monitor'@'%' IDENTIFIED BY 'monitor';
|
|
GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'%';
|
|
FLUSH PRIVILEGES;
|
|
```
|
|
|
|
|
|
```sql
|
|
CREATE USER 'operator'@'%' IDENTIFIED BY 'operator';
|
|
GRANT SELECT, REPLICATION CLIENT ON *.* TO 'operator'@'%';
|
|
FLUSH PRIVILEGES;
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```sql
|
|
INSERT INTO mysql_users (username, password, default_hostgroup, active)
|
|
VALUES ('monitoring', '0nz&lzDAxcxet5ta', 0, 1);
|
|
|
|
```
|
|
|
|
|
|
```sql
|
|
INSERT INTO mysql_users (username, password, default_hostgroup) VALUES ('monitor', '0nz&lzDAxcxet5ta', 0);
|
|
LOAD MYSQL USERS TO RUNTIME;
|
|
SAVE MYSQL USERS TO DISK;
|
|
|
|
```
|
|
|
|
|
|
```bash
|
|
proxysql-admin --config-file=/var/lib/proxysql/proxysql-admin.cnf --enable
|
|
```
|