>  기사  >  웹 프론트엔드  >  Docker의 Mysql 마스터-슬레이브 복제에 대한 자세한 설명

Docker의 Mysql 마스터-슬레이브 복제에 대한 자세한 설명

小云云
小云云원래의
2018-02-07 14:39:321324검색

이 글은 주로 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.sh
master를 구성하려면 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 마스터에서 읽기-쓰기 분리 복사를 기반으로 구현된 예제

위 내용은 Docker의 Mysql 마스터-슬레이브 복제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.