欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python详解如何通过sshtunnel pymssql实现远程连接数据库

时间:2022-07-17 09:12:52|栏目:Python代码|点击:

最近几天在做Python相关项目,有个需求 ,是希望在任何机器上都可以ssh到某台在数据库白名单的机器上,然后访问数据库,不然的话就要去服务器安装Python环境,运行程序,比较麻烦,翻阅多篇博客文章,决定自己去实现。

涉及库:pymssql、sshtunnel
涉及数据库:SQLSERVER

场景如下:

跳板机核心代码

   def __get_ssh_connector(self):
        # 远程连接
        # 跳板机地址 端口,服务器账号,密码配置
        server = SSHTunnelForwarder(
            (
                self.connect_config.get("ssh_host", ‘白名单服务器地址'),
                self.connect_config.get("ssh_port", 22)
            ),
            ssh_username=self.connect_config.get("ssh_username", ‘白名单服务器账号 '),
            ssh_password=self.connect_config.get("ssh_password", ‘白名单服务器密码 '),
            # 内网数据库地址和端口
            remote_bind_address=(self.connect_config.get("dbserver", '目标数据库地址'), self.connect_config.get("ssh_mssql_port", ‘数据库端口'))
        )
        server.start()
        return server  # 远程主机上的mssql通过ssh连接映射到本地的端口

pymssql 连接数据库核心代码

 def get_mssql_connector(self):
       return get_mssql_connector({
           "port": self.server.local_bind_port, #非常重要
           "username": ‘目标数据库账号',
           "password": ‘目标数据库密码',
           "db": self.connect_config.get('db', ‘目标数据库')
       })
def __get_mssql_connector(database_config):
    host = database_config.get('host', '127.0.0.1')
    port = database_config.get('port', ‘数据库端口')
    user = database_config.get('username', ‘目标数据库账号')
    passwd = database_config.get('password', ‘目标数据库密码')
    db = database_config.get('db', ‘目标数据库')
    return  pymssql.connect(host=host, port=port, user=user, password=passwd, database=db, charset="UTF-8")

MySql 和SQLSERVER方法一样,不一样的地方pymssql.connect改成pymysql.connect

人生第一篇技术博客,第一次奉献给 大家

上一篇:谈谈如何手动释放Python的内存

栏    目:Python代码

下一篇:用Python定时发送天气邮件

本文标题:python详解如何通过sshtunnel pymssql实现远程连接数据库

本文地址:http://www.codeinn.net/misctech/208017.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有