MySQL 데이터베이스 복제를 설정

항상에 대한 데이터의. 그것에 의존 데이터없이 시스템의 사용은 무엇입니까?

데이터베이스 복제를 설정하면 손실 방지 및 재해 복구가 쉽게 데이터를 보존하기 위해 촬영 있어야 할 많은 단계 중 하나입니다.

다행히, 그것은 MySQL과 연동하여 간단합니다. 그러니 우리가 MySQL을 실행하는 두 서버가 있다고 가정하자, 하나는 host1 및 host2 다른 전화를.
복제가 마스터 마스터 또는 슬레이브 마스터 중 하나가 될 수 있습니다. 마스터 - 슬레이브 복제와 슬레이브는 항상 마스터 데이터베이스가 실행 무엇 복제합니다. 마스터 - 마스터 복제에서는 두 데이터베이스는 서로 동기화.

이 튜토리얼의 목적을 위해, 마스터 슬레이브 (여기서 host1 host2 각각) 시나리오가 검토됩니다.

우선, host1에서 MySQL의 설정 파일을 열 (보통 리눅스에서은 / etc / my.cnf 발견하고, C : Windows에서 \ WINDOWS \ my.ini) 및 주석 (의 해쉬를 제거) 다음 줄을 :

# 건너뛰기 네트워킹

마스터 (host1)는 로그인하셔야합니다 어디에 둘째로, 당신은 (쓰기) 파일을 지정하는 것이 실행의 쿼리가 필요합니다. 이것은이 쿼리를 읽고뿐만 아니라 그들을 실행하기 위해 노예 (host2)를 사용합니다. 이와 같이, 같은 라인을 추가합니다

로그인 빈 = / 경로 /로 / MySQL을 - bin.log

위의 값은 MySQL이 로깅을하고 있어야 할 곳에 파일에 대한 경로입니다. 당신은 매우 잘 별도의 디렉토리를 만들거나 기본 MySQL의 설치 디렉토리를 (예 : C : \ 프로그램 파일 \ MySQL은 \ Windows 또는은 / var / lib과 / MySQL을 리눅스에서) 사용할 수 있습니다

그런 다음 해당 데이터베이스의 이름을 지정해야합니다. 당신은 'work_data'라는 MySQL의 데이터베이스 중 하나에 대한 복제를 설정하는 경우 그렇다면, 이것은 당신이 MySQL의 설정에 추가하는 데 필요한 라인입니다

binlog -합니까 - DB = work_data

마지막으로, 당신은 서버 ID를 지정해야하는이 마스터 서버 있다고

서버 ID = 1

설정 파일과 출구를 저장합니다.
이제 host2에게 데이터를 복제하기 위해 허가를해야합니다. 따라서, MySQL의 쿼리는 마스터에서 발행해야합니다.

그럼 host1에서 MySQL을 프롬프트 (MySQL의 루트 - U - pyour_root_password) (또는 PHPMyAdmin 등 ... 여러분이 사용하는대로)에 로그인, 다음과 같은 성명을 발표 :

에 부여 복제 슬레이브 *.* 비밀 번호 '에 의해 확인된 사용자 이름 '@'%''로;

원하는 자격 증명과 사용자 이름과 비밀 번호를 교체해야합니다. 작은 따옴표 불구하고 계속 마십시오.
% 기호는 노예 어떤 호스트에서 연결할 수있다는 것을 의미합니다. 당신이보다 안전하길 원한다면, host2 (노예의 호스트 이름)과 그 바꾸십시오.

위의 모든이 완료되면 MySQL을 서비스 (서비스 mysqld 다시 시작 (리눅스) 또는에서 net stop MySQL은, NET START MySQL을 (Windows에서)) 다시 시작합니다.

데이터베이스가 이전 데이터가있다면, 위의 어떤 일을하기 전에 당신이 그것을 덤프하고 노예에 로드할 수 있는지 확인하십시오. 덤프 데이터는 간단하고 MySQL의 bin 디렉토리에 cd'ing 및 발급 할 수 있습니다 :

mysqldump - Q - U 루트 pyour_root_password의 databasename> database_dump.sql

(올바른 로그인 암호 및 데이터베이스 이름을 바꿉니다). 전체 데이터베이스는 현재 database_dump.sql라는 파일에있을 것입니다

MySQL의 bin 디렉토리와 문제 host2, CD에 가져오려면 :

MySQL의 루트 - U - pyour_root_password의 databasename /로 </ 경로 / / 파일 / database_dump.sql

host2에서 MySQL의 설정 파일은 다음과 같은 라인이 있어야합니다 :

서버 ID = 2
마스터 호스트 = host1
마스터 사용자 = 사용자 이름
마스터 비밀 번호 = 비밀 번호
마스터 포트 = 3306

host1 어디 마스터의 IP / 호스트 이름, 사용자 이름 및 비밀 번호 복제 액세스 위의 몇 가지 단계를 부여 때 사용되는 자격 증명입니다. 3306은 포트가 MySQL이 (기본값되는)에서 실행됩니다

다음 프롬프트에서 MySQL을 발급하여 host2에서 슬레이브 프로세스를 시작합니다 :

노예를 시작합니다;

확실 복제가 제대로 작동하게하려면 host1에서 다음 SQL 쿼리를 실행 :

쇼 노예 상태가 \ G

(Slave_SQL_Running 및 Slave_IO_Running하면보고해야 '예')

행운을 빌어요

6 개의 댓글

오전 10시 49분에서 로버트 2008년 9월 17일

좋아요, 딱 필요할때. 지금은 ... 그것은 하나의 슬레이브 서버에 복제하는 여러 마스터 장치를 설정할 수 있습니까?. IM은 석사 중 하나가 실패하면, 그것은 슬레이브 서버에 의해 일시적으로 대체할 수있는 액티브 Stanby 토폴로지를 설정하려고 때문에 이것을 부탁 해요. 감사

오전 11시 25분에서 관리 2008년 9월 17일

친애하는 로버트,
노예 호스트에서 여러 개의 MySQL의 서비스를 실행하는 방법에 대한 뭐야? 각각은 다른 포트에서 실행 될 것이며, 다른 마스터에 의존 것입니다.

오후 1시 44분에서 로버트 2008년 9월 23일

천재이야! , 난 실패의 경우에 원활하게 전환하기 위해 사용자가 데이터베이스에 연결하는 방법을 변경해야하더라도.

오후 4시 58분에서 관리 2008년 9월 23일

당신은 로컬 DNS 서비스를 설치하고, 사용자가 서비스에 액세스할 (마스터를 가리키는 일반적인 경우) 호스트 이름을 사용하여 만들 수 있습니다.
실패의 경우에, 당신은 단순히 노예 컴퓨터를 가리 키도록 해당 호스트의 DNS 레코드를 변경합니다.
당신이 그 호스트명​​ 해결가 IP를 변경하면 사용자는 변경 내용을 통지하지 것입니다.

host2 오후 8시 2분에 2010년 4월 1일

[...] 그것이 가능한 구성의 clients.Tips 및 MySQL 데이터베이스 replicationSo이의 우리가 MySQL을 실행하는 두 서버가 있다고 가정하자 설정 트릭 필요없이 클러스터에서 노드를 추가하거나 제거할 수 있습니다, 하나는 host1 및 다른 host2를했다. ... 경우 [...]

자연 식량 5시 56분에서 2011년 12월 29일 오전

지금 귀하의 사이트에 기사 몇 가지를 읽고, 나는 블로그의 스타일을 정말 좋아. 내 즐겨찾기 블로그 사이트 목록에 추가하고 곧 다시 확인합니다. 뿐만 아니라 내 사이트를 확인하고 내가 무슨 생각하는지 알려주시기 바랍니다.

자연 식량

코멘트를 남겨주세요

댓글