티스토리 뷰
Docker에서 MySQL Replication 세팅
1. master, slave 각각 사용할 MySQL 컨테이너를 생성한다.
연습용이므로 MYSQL_ALLOW_EMPTY_PASSWORD 넣어줌.
docker run --name mysql-server1 -p 16060:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
docker run --name mysql-server2 -p 26060:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
2. master, slave의 /etc/mysql/my.cnf 파일을 수정한다.
[mysql]
server-id=1 (master 1번, slave 2번)
3. (master) replication 계정을 생성하고 권한을 부여한다.
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'test1234';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
4. (master) 테스트 DB와 테이블을 생성하고 컨테이너 bash에서 mysqldump 작업을 한다.
# mysqldump testdb > testdb_backup.sql
5. master 에서 testdb_backup.sql 파일을 복사해온다.
D:\docker> docker cp mysql-server1:testdb_backup.sql .
끝에 '.' 은 현재폴더를 가리킨다는 의미.
6. (slave) 테스트 DB를 생성하고 로컬의 testdb_backup.sql 파일을 가져온다.
D:\docker> docker cp ./testdb_backup.sql mysql-server2:.
# mysql testdb < testdb_backup.sql
7. (master) show master status; 를 실행해 log_pos, log_file 을 파악한다
8. (slave) master로 연결하는 정보를 7에서 파악한대로 입력한다.
mysql>change master to\
master_host='172.17.0.2',\
master_port=3306,\
master_user='replicate_user',\
master_password='test1234',\
master_log_file='binlog.000002',\
master_log_pos=2927;
9. (slave) show slave status; 를 실행해 Slave_IO_Running, Slave_SQL_Running 이 Yes 인지 확인한다.
10. master 에서 insert 해보며 테스트한다.
세팅 중에 발생한 이슈
- Authentication plugin 'caching_sha2_password' cannot be loaded
해결 방법 출처 : stack overflow
1) replicate_user 패스워드에 mysql_native_password 옵션을 넣어준다.
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
2) my.cnf 파일에 옵션을 추가한다.
[mysqld]
default_authentication_plugin=mysql_native_password
- server-id 중복
my.cnf 파일에 server-id 추가해주고 리셋을 하지 않아서 생긴 이슈.
컨테이너 재시작하면 해결.
docker restart container_id
'활동 > 교육과정 중 기록' 카테고리의 다른 글
200118 OpenStack, CentOS (0) | 2020.01.07 |
---|---|
200116 Docker (0) | 2020.01.06 |
200103 Docker Swarm (0) | 2020.01.03 |
200102 Docker, MongoDB (0) | 2020.01.02 |
191230 Docker (0) | 2019.12.30 |
- Total
- Today
- Yesterday
- 패스트캠퍼스
- c언어
- 자료구조
- 프로그래밍 온라인 강의
- 컴퓨터공학
- Fast Campus
- 운영체제
- 코딩 면접
- 올인원 패키지
- #패스트캠퍼스 #프로그래밍대학생서포터즈 #올인원패키지 #컴퓨터공학 #성공하는프로그래밍공부법
- 개발자 취업
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |