2016-12-02 142 views
2

儘管通過官方文檔,文章和SO問題花費了很多時間,但我仍無法通過SSH隧道設置複製。通過SSH隧道進行MySQL複製

我的主人是192.168.0.105和奴隸是192.168.0.104。我已經通過已經建立的SSH隧道:

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

其中tunneluser是我本地用戶。

我坐上從下面的輸出(省略了不相關的線):

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 

希望這有助於人誰在類似的問題絆倒。