sql >> Databáze >  >> RDS >> Mysql

SSH tunel z Pythonu se automaticky zavírá

Podle steven-rumbalski Komentář uživatele výše:

Nahradit: with SSHTunnelForwarder(...) as server
S: server = SSHTunnelForwarder(...)
Poté zabalte: server.start() ... server.stop()
kolem kódu, který chcete odeslat prostřednictvím tunelu SSH.

Zde je převedený kód:

import pymysql, shlex, shutil, subprocess
import logging
import sshtunnel
from sshtunnel import SSHTunnelForwarder
import iot_config as cfg

def OpenSSHTunnel():
    global server
    sshtunnel.DEFAULT_LOGLEVEL = logging.DEBUG
    server = SSHTunnelForwarder(
        (cfg.sshconn['host'], cfg.sshconn['port']),
        ssh_username = cfg.sshconn['user'],
        ssh_private_key = cfg.sshconn['private_key_loc'],
        ssh_private_key_password = cfg.sshconn['private_key_passwd'],
        remote_bind_address = ('127.0.0.1', 3306)
    )

def OpenRemoteDB():
    global remotecur, remotedb
    remotedb = None
    remotedb = pymysql.connect(
        host='127.0.0.1',
        user=cfg.remotedbconn['user'],
        passwd=cfg.remotedbconn['passwd'],
        db=cfg.remotedbconn['db'],
        port=server.local_bind_port
    )
    remotecur = remotedb.cursor()
    print("Checkpoint 1")

def SyncActions():
    print("Checkpoint 2")
    # this should now work as expected
    remotecur.execute("SELECT ActionID, Description FROM cmAction")
    for r in remotecur:
        print(r)

# Main program starts here
OpenSSHTunnel()
server.start()
OpenRemoteDB()
SyncActions()
server.stop()



  1. Jak resetuji výchozí heslo uživatele postgresql 9.2 (obvykle 'postgres') na mac os x 10.8.2?

  2. Je možné získat historii dotazů provedených v postgresu

  3. Vypne se můj osobní server MySQL, když se vypne můj počítač?

  4. dotaz mysql pro aktualizaci pole na max(pole) + 1