오늘만살자
docker swarm mysql5.5 replication 본문
mysql-replica.yml
version: "3.7"
services:
master:
image: mysql:5.5
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./mysql/master.cnf:/etc/mysql/conf.d/master.cnf
- "./mysql/:/docker-entrypoint-initdb.d/"
environment:
- TZ=Asia/Seoul
- MYSQL_ROOT_PASSWORD=XXX
- MYSQL_DATABASE=XXX
- MYSQL_USER=XXX
- MYSQL_PASSWORD=XXX
deploy:
mode: replicated
replicas: 3
#placement:
#constraints:
#- node.hostname == master01
slave:
image: mysql:5.5
ports:
- "3307:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./mysql/slave.cnf:/etc/mysql/conf.d/slave.cnf
- "./mysql/:/docker-entrypoint-initdb.d/"
environment:
- TZ=Asia/Seoul
- MYSQL_ROOT_PASSWORD=XXX
- MYSQL_DATABASE=XXX
- MYSQL_USER=XXX
- MYSQL_PASSWORD=XXX
deploy:
mode: replicated
replicas: 3
#placement:
#constraints:
#- node.hostname == node01
volumes:
mysql-data:
name: '{{.Service.Name}}-{{.Task.Slot}}-data'
driver: local
mysql 폴더 파일들
master.cnf
[mysqld]
log-bin=mysql-bin
server-id=1
slave.cnf
[mysqld]
server-id=2
setup.sql
SET NAMES utf8 ;
CREATE DATABASE IF NOT EXISTS test;
SET character_set_client = utf8mb4 ;
GRANT ALL PRIVILEGES ON *.* TO 'testman'@'%' identified by 'TEST';
set global max_connections=10000;
set wait_timeout=60;
FLUSH PRIVILEGES;
master에서
show master status;
slave 에서
change master to master_host='master',
master_user = 'root',
master_password = 'XXXXXXXX',
master_log_file = 'mysql-bin.0000004',
master_log_pos = 107;
start slave;
show slave status;
'Docker' 카테고리의 다른 글
mongodb run (0) | 2020.08.07 |
---|---|
mariadb run (0) | 2020.08.07 |
CentOS 8 docker install (0) | 2020.04.29 |
Portainer Install (0) | 2020.04.29 |
docker swarm Monitoring (0) | 2020.04.23 |
Comments