이 글은 주로 Docker 기반의 Mysql 마스터-슬레이브 복제를 공유하는데, 도움이 되길 바랍니다.
환경 소개
Master 서버: JD Cloud CentOS
Slave 서버: Vultr Cloud CentOS
Mysql 실행에는 Docker를 사용합니다.
docker run --name mysql-server-01 -p 3306:3306 -v "$PWD"/conf.d:/etc/mysql/conf.d -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest위의 모든 내용은 mysql을 넣어 구성 디렉터리와 데이터 디렉터리가 호스트 시스템에 매핑됩니다.
Configure Master
편의상 master 데이터베이스를 운영하기 위한 특별한 디렉터리를 생성합니다. 구조는 다음과 같습니다
mysql └── server01 ├── conf.d ├── data └── start.shmaster를 구성하려면 cond.d에 my.cnf를 생성하세요
[mysqld]log-bin=mysql-binserver-id=1innodb_flush_log_at_trx_commit=1sync_binlog=1그런 다음 컨테이너를 시작할 수 있습니다.
시작 후, mysql을 구동할 컨테이너에 들어가세요
# 进入容器 docker exec -it 容器ID bash # 进入msyql客户端 mysql -u root -p # 新建salve用户并配置权限,格式如下 mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com'; # 查看master状态,这里file和position后面配置salve会用到mysql> show master status; +------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 | 1092 | | | | +------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)슬레이브 서버 구성
slave my.cnf 구성 파일은 다음과 같습니다. 프로덕션 환경):
[mysqld]server-id=2그런 다음 컨테이너를 시작하고 mysql 클라이언트를 입력합니다. "
# 配置master到slave mysql> CHANGE MASTER TO -> MASTER_HOST='master_host_name', -> MASTER_USER='replication_user_name', -> MASTER_PASSWORD='replication_password', -> MASTER_LOG_FILE='recorded_log_file_name', -> MASTER_LOG_POS=recorded_log_position;실행 상태 확인:
START SLAVE;위의 Slave_IO_Running과 Slave_SQL_Running이 모두 YES로 마스터와 슬레이브가 구성되었음을 나타냅니다. mysql single glines architecture mas 위의 바이너리 로그 복제 방식과 GTID(Global Transaction Identifier) 기반의 방식이 있습니다. 관련 권장 사항: MySQL의 마스터-슬레이브 복제 프로세스에 대한 자세한 설명_Mysql 인스턴스에 대한 자세한 설명
MySQL5.7.18 마스터-슬레이브 복제를 위한 마스터-슬레이브 인스턴스 설정에 대한 자세한 설명
- Mycat MySQL 마스터에서 읽기-쓰기 분리 복사를 기반으로 구현된 예제