2016-12-02 8 views
2

많은 시간 동안 공식 문서, 기사 및 SO 질문을 보냈지 만 SSH 터널을 통해 복제를 설정하는 데 문제가 있습니다.SSH 터널을 통한 MySQL 복제

내 마스터는 192.168.0.105이고 슬레이브는 192.168.0.104입니다. 이미 통해 SSH 터널을 설정 한 : tunneluser마스터에 로컬 사용자입니다

ssh -L 3305:127.0.0.1:3306 [email protected] -f -N 

.

mysql -h 127.0.0.1 -P 3305 -u slave_user -p 

그것은 기록 된 어떤없이 : 제가 시도하는 경우이다 퍼즐

mysql> SHOW SLAVE STATUS \G 
*************************** 1. row *************************** 
       Slave_IO_State: Connecting to master 
        Master_Host: 127.0.0.1 
        Master_User: slave_user 
        Master_Port: 3305 
        ... 
      Slave_IO_Running: Connecting 
      Slave_SQL_Running: Yes 
        ... 
       Last_IO_Errno: 2003 
       Last_IO_Error: error connecting to master '[email protected]:3305' - retry-time: 10 retries: 1 
        ... 
1 row in set (0.00 sec) 

부분 :

나는 노예에 다음과 같은 출력 (생략 관련이없는 선)을 얻을 문제. 나는 이것이 허가와 관련이 있다고 생각하기 시작했지만, 내 이론을 확인하는 힌트를 찾을 수는 없다.

터널을 mysql 사용자로 설정하려고했으나 제대로 작동하지 않았습니다. 기대하지는 않았지만 한 번 맞춰야했습니다.

누구든지 디버깅하는 방법에 대한 제안이 있습니까?

포트 3306을 직접 방문하면 문제없이 작동합니다.

답변

0

그런데 며칠 후, 나는에 Serverfault에 비슷한 질문을 발견 :

MySQL Replication Over SSH - Last_IO_Errno: 2003 - error connecting to master

그것은 SELinux이 가진 모든 것을해야했다 밝혀졌다! @Tek 자우 설명, 당신은 semanage를 통해이 사용자 정의 포트를 추가하여이 문제를 해결할 수 있습니다

sudo /usr/sbin/semanage port -a -t mysqld_port_t -p tcp 3305 

희망이 유사한 문제에 실수를 한단다 사람을 도움이됩니다.