2012-11-29 5 views
0

네트워크의 두 시스템에서 다중 마스터 mysqlreplication을 설정하려고합니다. 두 개의 개별 데이터베이스 서버는 에 localhost을 실행합니다. hosts에 대해 replication 사용자를 생성하려면 어떻게해야합니까?명명 된 데이터베이스 호스트를 만드는 방법

이 작업을 수행 할 수는 있지만 올바른 작업이 아닌 것 같습니다.

CREATE USER 'repl_user1'@'localhost' IDENTIFIED BY 'password1'; // Server1 
CREATE USER 'repl_user2'@'localhost' IDENTIFIED BY 'password2'; // Server2 

는이 같은 일이

CREATE USER 'repl_user1'@'server1.com' IDENTIFIED BY 'password1'; // Server1 
CREATE USER 'repl_user2'@'server2.com' IDENTIFIED BY 'password2'; // Server2 

을해야한다고 생각하지만 호스트 이름을 지정하는 방법을 모르겠어요. 도움 주셔서 감사합니다.

+0

두 인스턴스에서 동일한 복제 사용자를 사용하지 않는 이유는 무엇입니까? –

+0

각 인스턴스에 대한 복제시 grant가있는 사용자가 필요합니다. 내 문제는 그들이 'localhost'같은 이름을 사용하기 때문에 호스트를 참조하는 방법입니다. – Chibuzo

답변

1

당신은 IP를, 예 사용할 수 있습니다 : 당신의 hosts 파일에 추가, 당신이 정말로 호스트 이름을 사용하려면

CREATE USER 'repl_user1'@'192.168.1.101' IDENTIFIED BY 'password1'; // Server1 
CREATE USER 'repl_user2'@'192.168.1.102' IDENTIFIED BY 'password2'; // Server2 

을 (당신은 이미 일부는 DNS를 사용하여 서버에 대한 설정이 없습니다) 그것들을 참조하십시오. 예 :/etc/hosts 파일 (서버 1)

127.0.0.1   localhost server1.local 
192.168.1.101  server1.local 
192.168.1.102  server2.local 

/etc/hosts 파일 (서버 2)

127.0.0.1   localhost server2.local 
192.168.1.101  server1.local 
192.168.1.102  server2.local 

그런 다음 사용자 설정

:

CREATE USER 'repl_user1'@'server1.local' IDENTIFIED BY 'password1'; // Server1 
CREATE USER 'repl_user2'@'server2.local' IDENTIFIED BY 'password2'; // Server2 

을해야 두 서버가 자체 호스트와 다른 서버로부터 연결을 수신하고 올바른 사용자에게 연결하도록하십시오.

+0

오케이, 이해합니다. 고맙습니다. – Chibuzo