>데이터 베이스 >MySQL 튜토리얼 >Linux에서 mysql 마스터-슬레이브 서버 구축

Linux에서 mysql 마스터-슬레이브 서버 구축

王林
王林앞으로
2020-01-30 20:17:543579검색

Linux에서 mysql 마스터-슬레이브 서버 구축

목표를 달성하려면

이제 두 개의 MySQL 서버(마스터 하나와 슬레이브 하나)를 구축해야 합니다. 하나는 마스터 서버로, 다른 하나는 슬레이브 서버로 사용합니다. 읽기 작업을 수행합니다.

Workflow

마스터 서버:

바이너리 로그 활성화

고유한 서버 ID 구성

마스터 바이너리 로그 파일 이름 및 위치 가져오기

슬레이브 및 마스터 통신을 위한 사용자 계정을 생성합니다.

슬레이브 서버:

고유한 서버 ID를 구성하세요.

마스터 바이너리 로그를 읽으려면 마스터가 할당한 사용자 계정을 사용하세요.

슬레이브 서비스를 활성화하세요.

(무료 학습 동영상 튜토리얼 추천: mysql 동영상 튜토리얼)

준비

마스터 데이터베이스와 슬레이브 데이터베이스 버전이 동일한 것이 가장 좋습니다

마스터 데이터베이스와 슬레이브 데이터베이스의 데이터는 일관성이 있어야 합니다

마스터 데이터베이스: 192.168.244.201: 3306

슬레이브 데이터베이스: 192.168.244.202: 3306

구성 시작

마스터 메인 서버 구성

구성 파일 찾기 my.c nf(Windows의 my.ini ) 마스터 데이터베이스 중 내 파일은 /etc/my.cnf에 있습니다.
[mysqld] 섹션에 다음 두 줄을 삽입하세요.

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=201 #设置server-id,唯一值,标识主机

Mysql 서비스를 다시 시작하세요

systemctl restart mysqld

마스터-슬레이브에 대한 계정/비밀번호 만들기 동기화

MySQL 입력: mysql -u root -p Enter 비밀번호를 입력하세요.

제가 만든 사용자 이름은 "master_root"이고 비밀번호는 "MySql@6688"

[참고: 간편 비밀번호 123456을 지원하도록 비밀번호가 변경되었기 때문에 여기서 신규 사용자를 생성할 때 문제가 좀 있습니다. 비밀번호가 정책을 준수하지 않습니다. 잠깐만요. 나중에 간단히 mysql을 다시 설치하고 기본 복잡한 비밀번호를 사용했는데 더 이상 문제가 없었습니다. 실제로 익숙해지는 것이 좋습니다. 】

아래 %를 사용하고 있으며, 구체적인 IP는 적지 않았으니 직접 결정하시면 됩니다.

#创建用户(IP为可访问该master的IP,任意IP就写'%')
mysql> CREATE USER 'master_root'@'192.168.244.202' IDENTIFIED BY 'MySql@6688';
#分配权限(IP为可访问该 master的IP,任意IP就写'%')
mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_root'@'192.168.244.202';
 #刷新权限
mysql>flush privileges;

마스터 상태를 확인하고 바이너리 파일명(mysql-bin.000001)과 위치(154)를 기록해두세요. 나중에 슬레이브 라이브러리를 구성할 때 사용됩니다.

show master status;

Linux에서 mysql 마스터-슬레이브 서버 구축

슬레이브 메인 서버 구성

my.cnf 파일 수정

vim /etc/my.cnf
[mysqld]
server-id=202 #设置server-id,唯一值,唯一标识从库

mysql 서비스 재시작

systemctl restart mysqld

mysql에 로그인하고 동기화 sql 문 실행(main 서버 이름 , 마스터-슬레이브에 사용됨 사용자 이름, 비밀번호, 바이너리 파일 이름, 위치)

mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.244.201',
    -> MASTER_USER='master_root',
    -> MASTER_PASSWORD='MySql@6688',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=154;

슬레이브 동기화 프로세스 시작

mysql>start slave;

슬레이브 상태 확인

show slave status\G

세미콜론을 따르지 않도록 주의하세요. 마지막 줄에는 다음과 같은 오류가 표시됩니다.

ERROR: No query specified

Slave_IO_Running과 Slave_SQL_Running이 모두 YES인 경우 마스터-슬레이브 동기화 설정이 성공한 것입니다.

그런 다음 마스터 데이터베이스의 테스트 데이터베이스에 있는 테이블에 데이터 조각을 삽입하고 마스터 데이터베이스를 확인하기 위해 슬레이브 테스트 데이터베이스의 동일한 데이터 테이블에 새 데이터가 있는지 확인하는 등 몇 가지 확인을 수행할 수 있습니다. 슬레이브 복제 기능이 유효하면 슬레이브를 닫은 다음(mysql>stop 슬레이브;) 마스터를 수정하여 슬레이브가 그에 따라 수정되었는지 확인할 수도 있습니다(슬레이브를 중지한 후에는 마스터의 수정 사항이 적용되지 않습니다). 슬레이브에 동기화) 그러면 마스터-슬레이브 복제 기능의 검증이 완료될 수 있습니다.

기타 관련 매개변수:

바이너리 로그를 켜면 마스터는 기본적으로 모든 데이터베이스와 모든 테이블의 작업을 기록하도록 지정할 수 있습니다. 특히 mysql 구성 파일의 [mysqld]에서 다음 옵션을 추가하고 수정할 수 있습니다.

동기화되지 않은 데이터베이스

binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema

동기화되는 데이터베이스만, 추가로 다른 데이터베이스는 동기화되지 않습니다

binlog-do-db = game

이전에 마스터 상태를 보면 알 수 있듯이 매뉴얼과 mysql 라이브러리는 무시하고 테스트 라이브러리만 기록됩니다.

추천 관련 기사 및 튜토리얼: mysql 튜토리얼

위 내용은 Linux에서 mysql 마스터-슬레이브 서버 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제