2016-06-21 18 views
0

SSHを使用してリモートのMySQLサーバーに接続するために何をすべきか理解しています。PythonがSSHunnelForwarderとMySQLdbを使用してMySQLサーバーに接続する

from sshtunnel import SSHTunnelForwarder 

with SSHTunnelForwarder(
     ('192.168.0.60', 22), 
     ssh_password="MySSHPASSWORD", 
ssh_username="MUSSHUserName", 
remote_bind_address=('192.168.0.30', 3306)) as server: 

    conn = MySQLdb.connect(user='UserNameOnSQLSERVER', passwd='PasswordOnSQLSERVER', host='192.168.0.60', db='myDB', 
          port=server.local_bind_port) 

私は、上記の設定スローMySQLのワークベンチで、このサーバーに接続してクエリを実行することができましたし、すべてが

問題は、私がすることで、このDBに接続しようとしているときということです素晴らしい仕事しましたコードの上に私はエラーを取得しておいてください。

_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.0.60' (10060)") 

私も

 conn = MySQLdb.connect(user='kiboUser', passwd='[email protected]#kL68', host='192.168.0.60', db='dbKiboDashboard', 
          port=server.local_bind_port) 
であることをMySQLdb.connectでipを変更しようとしました

と私は次のエラーを得た:

_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.0.30' (10060)") 

は、誰かが感謝

+0

、明確にしてください詳細192.168.0.60、MySQLを使用するリモートサーバーは192.168.0.30にありますか? 2.あるいは192.168.0.60にsshプロキシがありますか? 3. ssh -L 3307:mysql-host-name.com:3306 ssh_user @ ssh_host -Aのようなコマンドを使用してssh tonelを作成し、ポート3307のlocalhost経由でMySQLに接続してみましたか? – Taras

+0

1)MySQLサーバは192.168.0.30で、192.168.0.60まで届きます。 –

+0

あなたのserver.local_bind_portの値は? – Taras

答えて

1

remote_bind_addressはあなたにトンネリングされる1つである私はイムが間違っ

をやって何を理解する助けてくださいすることができます。リッスンしているサーバーのTCPポートを確認してください。 これを確認するには、

netstat

または

netstat -tln

これは動作するはずのコマンドを試みることができる:1.あなたのローカルアドレスは次のとおりです。セットアップあなたの

with SSHTunnelForwarder(
    ('ServerIP', sshport), #The server's IP and SSH port 
    ssh_password="MySSHPASSWORD", 
    ssh_username="MUSSHUserName", 
    remote_bind_address=('127.0.0.1', 3306)) as server: #The server's TCP IP and port, you're tunneling 

conn = MySQLdb.connect(user='UserNameOnSQLSERVER', passwd='PasswordOnSQLSERVER', host='127.0.0.1', 
         port=server.local_bind_port) #Your TCP IP and port (your end of the tunnel) 
+0

でMySQLに接続してください。それは私のために働いた。 –

関連する問題