sql >> データベース >  >> RDS >> Mysql

PythonからのSSHトンネルが自動的に閉じます

    steven-rumbalski による 上記のコメント:

    交換: サーバーとしてSSHTunnelForwarder(...)を使用
    使用: server =SSHTunnelForwarder(...)
    次にラップ: server.start() ... server.stop()
    SSHトンネルを介して送信するコードの周囲。

    変換されたコードは次のとおりです:

    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. SQL Server、LIKEとINを組み合わせていますか?

    2. 複数挿入SQLOracle

    3. xamarinを介してMySqlデータベースに接続します

    4. OracleBLOBをxmlタイプに変換します