update
This commit is contained in:
36
mysql/Demo/MGR/README.md
Normal file
36
mysql/Demo/MGR/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# 部署 MySQL Group Replication
|
||||
|
||||
- 按实际环境修改
|
||||
- docker-compose.yml
|
||||
- mysql{1..3}/my.cnf
|
||||
|
||||
- 创建目录
|
||||
```
|
||||
grep '\<source:' docker-compose.yml | cut -d: -f2 | xargs mkdir -p
|
||||
```
|
||||
|
||||
- 启动 mysql1
|
||||
```
|
||||
docker-compose up -d mysql1
|
||||
```
|
||||
|
||||
- 查看 mysql1 容器日志,直至出现 "MySQL is ready for connections." 字样
|
||||
```
|
||||
docker-compose logs -f mysql1
|
||||
```
|
||||
|
||||
- 启动 mysql2 和 mysql3
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
- 查看 mysql2 容器日志,直至出现 "MySQL is ready for connections." 字样
|
||||
```
|
||||
docker-compose logs -f mysql2
|
||||
```
|
||||
|
||||
- 查看 mysql3 容器日志,直至出现 "MySQL is ready for connections." 字样
|
||||
```
|
||||
docker-compose logs -f mysql3
|
||||
```
|
||||
|
90
mysql/Demo/MGR/docker-compose.yml
Normal file
90
mysql/Demo/MGR/docker-compose.yml
Normal file
@@ -0,0 +1,90 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
mysql1:
|
||||
image: harbor.colben.cn/general/mysql:8
|
||||
container_name: mysql1
|
||||
restart: "no"
|
||||
stop_grace_period: 5m
|
||||
environment:
|
||||
GROUP_REPLICATION: 1
|
||||
SERVER_ID: 11
|
||||
GROUP_REPLICATION_LOCAL_ADDRESS: "192.168.111.11:3306"
|
||||
GROUP_REPLICATION_GROUP_SEEDS: "192.168.111.11:3306,192.168.111.22:3306,192.168.111.33:3306"
|
||||
networks:
|
||||
mysql_replication:
|
||||
ipv4_address: 192.168.111.11
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./mysql1/my.cnf
|
||||
target: /etc/my.cnf
|
||||
- type: bind
|
||||
source: ./mysql1/db
|
||||
target: /var/lib/mysql
|
||||
- type: bind
|
||||
source: ./mysql1/binlog
|
||||
target: /var/lib/mysql-bin
|
||||
- type: bind
|
||||
source: ./mysql1/log
|
||||
target: /var/log/mysql
|
||||
|
||||
mysql2:
|
||||
image: harbor.colben.cn/general/mysql:8
|
||||
container_name: mysql2
|
||||
restart: "no"
|
||||
stop_grace_period: 5m
|
||||
environment:
|
||||
GROUP_REPLICATION: 1
|
||||
SERVER_ID: 22
|
||||
GROUP_REPLICATION_LOCAL_ADDRESS: "192.168.111.22:3306"
|
||||
GROUP_REPLICATION_GROUP_SEEDS: "192.168.111.11:3306,192.168.111.22:3306,192.168.111.33:3306"
|
||||
networks:
|
||||
mysql_replication:
|
||||
ipv4_address: 192.168.111.22
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./mysql2/my.cnf
|
||||
target: /etc/my.cnf
|
||||
- type: bind
|
||||
source: ./mysql2/db
|
||||
target: /var/lib/mysql
|
||||
- type: bind
|
||||
source: ./mysql2/binlog
|
||||
target: /var/lib/mysql-bin
|
||||
- type: bind
|
||||
source: ./mysql2/log
|
||||
target: /var/log/mysql
|
||||
|
||||
mysql3:
|
||||
image: harbor.colben.cn/general/mysql:8
|
||||
container_name: mysql3
|
||||
restart: "no"
|
||||
stop_grace_period: 5m
|
||||
environment:
|
||||
GROUP_REPLICATION: 1
|
||||
SERVER_ID: 33
|
||||
GROUP_REPLICATION_LOCAL_ADDRESS: "192.168.111.33:3306"
|
||||
GROUP_REPLICATION_GROUP_SEEDS: "192.168.111.11:3306,192.168.111.22:3306,192.168.111.33:3306"
|
||||
networks:
|
||||
mysql_replication:
|
||||
ipv4_address: 192.168.111.33
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./mysql3/my.cnf
|
||||
target: /etc/my.cnf
|
||||
- type: bind
|
||||
source: ./mysql3/db
|
||||
target: /var/lib/mysql
|
||||
- type: bind
|
||||
source: ./mysql3/binlog
|
||||
target: /var/lib/mysql-bin
|
||||
- type: bind
|
||||
source: ./mysql3/log
|
||||
target: /var/log/mysql
|
||||
|
||||
networks:
|
||||
mysql_replication:
|
||||
ipam:
|
||||
config:
|
||||
- subnet: "192.168.111.0/24"
|
||||
|
3
mysql/Demo/MGR/mysql1/my.cnf
Normal file
3
mysql/Demo/MGR/mysql1/my.cnf
Normal file
@@ -0,0 +1,3 @@
|
||||
[mysqld]
|
||||
mysqlx = OFF
|
||||
|
3
mysql/Demo/MGR/mysql2/my.cnf
Normal file
3
mysql/Demo/MGR/mysql2/my.cnf
Normal file
@@ -0,0 +1,3 @@
|
||||
[mysqld]
|
||||
mysqlx = OFF
|
||||
|
3
mysql/Demo/MGR/mysql3/my.cnf
Normal file
3
mysql/Demo/MGR/mysql3/my.cnf
Normal file
@@ -0,0 +1,3 @@
|
||||
[mysqld]
|
||||
mysqlx = OFF
|
||||
|
21
mysql/Demo/SingleNode/README.md
Normal file
21
mysql/Demo/SingleNode/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# 部署 MySQL 单节点
|
||||
|
||||
- 按实际环境修改
|
||||
- docker-compose.yml
|
||||
- mysql/my.cnf
|
||||
|
||||
- 创建目录
|
||||
```
|
||||
grep '\<source:' docker-compose.yml | cut -d: -f2 | xargs mkdir -p
|
||||
```
|
||||
|
||||
- 启动
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
- 查看日志,直至出现 "MySQL is ready for connections."
|
||||
```
|
||||
docker-compose logs mysql
|
||||
```
|
||||
|
27
mysql/Demo/SingleNode/docker-compose.yml
Normal file
27
mysql/Demo/SingleNode/docker-compose.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: harbor.colben.cn/general/mysql:8
|
||||
container_name: mysql
|
||||
restart: "on-failure"
|
||||
stop_grace_period: 5m
|
||||
privileged: true
|
||||
networks:
|
||||
mysql:
|
||||
ports:
|
||||
- 3306:3306
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./mysql/my.cnf
|
||||
target: /etc/my.cnf
|
||||
- type: bind
|
||||
source: ./mysql/binlog
|
||||
target: /var/lib/mysql-bin
|
||||
- type: bind
|
||||
source: ./mysql/db
|
||||
target: /var/lib/mysql
|
||||
- type: bind
|
||||
source: ./mysql/log
|
||||
target: /var/log/mysql
|
||||
|
19
mysql/Demo/SingleNode/mysql/my.cnf
Normal file
19
mysql/Demo/SingleNode/mysql/my.cnf
Normal file
@@ -0,0 +1,19 @@
|
||||
[mysqld]
|
||||
mysqlx = OFF
|
||||
skip-name-resolve = 1
|
||||
max-user-connections = 600
|
||||
|
||||
## this should be less than 80% of total memory
|
||||
innodb-buffer-pool-size = xxxxG
|
||||
|
||||
## this should be half of "innodb-buffer-pool-size"
|
||||
innodb-buffer-pool-instances = xxxx
|
||||
|
||||
# binlog
|
||||
server-id = 1
|
||||
log-bin = /var/lib/mysql-bin/master
|
||||
binlog-format = ROW
|
||||
binlog-expire-logs-seconds = 172800
|
||||
gtid-mode = ON
|
||||
enforce-gtid-consistency = TRUE
|
||||
|
49
mysql/Demo/TwoMasterNodes/README.md
Normal file
49
mysql/Demo/TwoMasterNodes/README.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 部署 MySQL 两节点互为主从+高可用
|
||||
|
||||
- 在每台服务器上执行如下操作
|
||||
- 按实际环境修改
|
||||
- docker-compose.yml
|
||||
- keepalived/conf/keepalived.conf
|
||||
- mysql/my.cnf
|
||||
|
||||
- 创建目录
|
||||
```
|
||||
grep '\<source:' docker-compose.yml | cut -d: -f2 | xargs mkdir -p
|
||||
```
|
||||
|
||||
- 启动
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
- 查看日志,直至出现 "MySQL is ready for connections."
|
||||
```
|
||||
docker-compose logs mysql
|
||||
```
|
||||
|
||||
- 配置 mysql 互相同步
|
||||
```
|
||||
# 进入mysql终端
|
||||
docker exec -ti mysql mysql
|
||||
|
||||
# 设置同步源
|
||||
CHANGE REPLICATION SOURCE TO
|
||||
SOURCE_HOST = '对方 host',
|
||||
SOURCE_PORT = 3306,
|
||||
SOURCE_USER = 'replicator',
|
||||
SOURCE_PASSWORD = 'China_19$(10)!',
|
||||
SOURCE_AUTO_POSITION = 1;
|
||||
|
||||
# 启动同步
|
||||
START REPLICA;
|
||||
|
||||
# 查看同步状态
|
||||
SHOW REPLICA STATUS\G
|
||||
# 如果输出Replica_IO_Running: Yes和Replica_SQL_Running: Yes,则同步正常
|
||||
|
||||
# 退出 mysql
|
||||
quit
|
||||
```
|
||||
|
||||
- 在其中一台 mysql 服务器上导入初始数据
|
||||
|
39
mysql/Demo/TwoMasterNodes/docker-compose.yml
Normal file
39
mysql/Demo/TwoMasterNodes/docker-compose.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
keepalived:
|
||||
image: harbor.colben.cn/general/keepalived
|
||||
container_name: keepalived
|
||||
restart: "on-failure"
|
||||
stop_grace_period: 1m
|
||||
privileged: true
|
||||
network_mode: host
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./keepalived/conf
|
||||
target: /etc/keepalived
|
||||
- type: bind
|
||||
source: ./keepalived/log
|
||||
target: /var/log/keepalived
|
||||
|
||||
mysql:
|
||||
image: harbor.colben.cn/general/mysql:8
|
||||
container_name: mysql
|
||||
restart: "on-failure"
|
||||
stop_grace_period: 5m
|
||||
privileged: true
|
||||
network_mode: host
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./mysql/my.cnf
|
||||
target: /etc/my.cnf
|
||||
- type: bind
|
||||
source: ./mysql/binlog
|
||||
target: /var/lib/mysql-bin
|
||||
- type: bind
|
||||
source: ./mysql/db
|
||||
target: /var/lib/mysql
|
||||
- type: bind
|
||||
source: ./mysql/log
|
||||
target: /var/log/mysql
|
||||
|
33
mysql/Demo/TwoMasterNodes/keepalived/conf/keepalived.conf
Normal file
33
mysql/Demo/TwoMasterNodes/keepalived/conf/keepalived.conf
Normal file
@@ -0,0 +1,33 @@
|
||||
global_defs {
|
||||
router_id mysql1 # 在另一台服务器中,这里配置 mysql2
|
||||
script_user root
|
||||
enable_script_security
|
||||
}
|
||||
|
||||
vrrp_script chk_mysql {
|
||||
script "/sbin/ss -lnt | grep -q ':3306\>'"
|
||||
interval 10
|
||||
weight 0
|
||||
fall 2
|
||||
rise 2
|
||||
}
|
||||
|
||||
vrrp_instance VI_1 {
|
||||
state BACKUP
|
||||
virtual_router_id 13
|
||||
priority 150 # 在另一台服务器中,这里配置100
|
||||
advert_int 2
|
||||
nopreempt
|
||||
interface eth0 # 这里的 eth0 是服务器的网卡名
|
||||
track_script {
|
||||
chk_mysql
|
||||
}
|
||||
authentication {
|
||||
auth_type PASS
|
||||
auth_pass El_en_mysql_1234
|
||||
}
|
||||
virtual_ipaddress {
|
||||
虚拟IP/掩码 dev eth0 # 这里的eth0是服务器的网卡名
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,4 @@
|
||||
CREATE USER replicator@'%' IDENTIFIED BY 'China_19$(10)!';
|
||||
GRANT REPLICATION SLAVE ON *.* TO replicator@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
|
30
mysql/Demo/TwoMasterNodes/mysql/my.cnf
Normal file
30
mysql/Demo/TwoMasterNodes/mysql/my.cnf
Normal file
@@ -0,0 +1,30 @@
|
||||
[mysqld]
|
||||
mysqlx = OFF
|
||||
skip-name-resolve = 1
|
||||
max-user-connections = 600
|
||||
|
||||
## this should be less than 80% of total memory
|
||||
innodb-buffer-pool-size = xxxxG
|
||||
|
||||
## this should be half of "innodb-buffer-pool-size"
|
||||
innodb-buffer-pool-instances = xxxx
|
||||
|
||||
# binlog
|
||||
## this should be an unsigned tinyint and different with the other mysql server.
|
||||
server-id = xxxx
|
||||
log-bin = /var/lib/mysql-bin/master
|
||||
binlog-format = ROW
|
||||
binlog-expire-logs-seconds = 172800
|
||||
gtid-mode = ON
|
||||
enforce-gtid-consistency = TRUE
|
||||
|
||||
# replication
|
||||
replicate-wild-ignore-table = information_schema.%
|
||||
replicate-wild-ignore-table = mysql.%
|
||||
replicate-wild-ignore-table = performance_schema.%
|
||||
replicate-wild-ignore-table = sys.%
|
||||
slave-parallel-workers = 2
|
||||
log-slave-updates = FALSE
|
||||
relay-log = /var/lib/mysql-bin/slave
|
||||
relay-log-recovery = TRUE
|
||||
|
Reference in New Issue
Block a user