python - 如何从 python 脚本转发到 rds 实例
问题描述
如何将 rds 实例从堡垒主机移植到rds sql server
实例?
通常,我像这样从堡垒主机进行端口转发:ssh -L 20004:targeted-mssql-rds.aws.com:1433 knn0926@my_bastion_host.com
这将允许我调用localhost:20004
我的数据库连接。但是,这似乎不起作用,也不是通过 python 脚本中的端口转发连接到数据库的正确过程。每次我尝试连接时,都会出现以下错误:pyodbc.OperationalError: ('HYT00, [HYT00] [Mircosoft][ODBC Driver 17 for SQL Server]Login timeout expired(0) (SqlDriverConnect))
. 我也在Mac上,所以我不确定这与Windows相比是否有所不同。
我认为我的代码很容易连接:
import pyodbc
import pandas as pd
import io
import os
#listing drivers
for driver in pyodbc.drivers():
print(driver)
#Make db connection
sql_connect = pyodbc.connect("Driver = {ODBC Driver for SQL Server}; SERVER=localhost,20004; database=simpsons;uid=my_user;PWD=my_pwd, autocommit=True")
cursor.execute('''select * from spp.transactions where acx_num > 1000''')
我是否应该在 python 代码本身中连接到我的堡垒和 mssql 实例?我对它失败的原因以及如何正确地将其连接到我的代码感到困惑。
解决方案
推荐阅读
- reactjs - graphql 突变有效负载中缺少字段
- powershell - Get-Variable 如何去掉 DOT DOT DOT
- cocoa - pod setup --verbose 不做任何事情
- c++ - 对数组中的数字进行平方,找到总和和最大的数字
- java - 如何围绕具有相似行为的不相交类型设计代码?
- javascript - 如何使用 React Spring 将一个元素上的两个动画连接起来?
- html - 我的页脚没有留在网页底部
- bash - 根据名称中的时间戳对每日文件进行 tar
- vba - 如何修复 VBA FOR EACH 在某些页面而不是 Word docx 的其他页面冻结?
- vue.js - 如何在 vueJs 中绑定多个类