티스토리 뷰

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
링크
«   2025/10   »
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
글 보관함