2016-12-02 10 views
2

多くの時間が公式のドキュメント、記事、およびSOの質問に費やされたにもかかわらず、SSHトンネル経由で複製をセットアップする際に問題があります。SSHトンネルを介したMySQLの複製

私のマスターは192.168.0.105で、スレーブは192.168.0.104です。

tunneluserが私の マスター上のローカルユーザーである
ssh -L 3305:127.0.0.1:3306 [email protected] -f -N 

:私はすでに経由でSSHトンネルを設定しています。

私はスレーブ(無関係な行を省略)に次のような出力が得られます。

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 -h 127.0.0.1 -P 3305 -u slave_user -p 

これは、ログに記録-のどのなし問題。私はこれがパーミッションと関係があると考え始めていますが、私の理論を確認するヒントは見つかりません。

トンネルをmysqlというユーザーとして設定しようとしましたが、それもうまくいきませんでした。期待はしていませんでしたが、私はそれを撃たなければなりませんでした。

誰でもこれをデバッグする方法について提案はありますか?

私がポート3306を直接経由すると問題なく動作します。

答えて

0

まあ、数日後、私はServerFaultの上で同様の質問を見つけました:

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

それはSELinuxはこれですべてを行う必要があったが判明しました! @Tek Jauはが説明したように、あなたはsemanageを経由して、このカスタムポートを追加することで、これを取り組むことができます。

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

これは、同様の問題時につまずく誰がお役に立てば幸いです。

関連する問題