【问题标题】:Getting pyodbc to connect in Cloud Foundry让 pyodbc 在 Cloud Foundry 中连接
【发布时间】:2020-11-05 21:46:13
【问题描述】:

我正在尝试获取一个 python 脚本以部署到 Cloud Foundry,它使用 pyobdc 连接到 sql server 并执行命令。我的 pyobdc 连接语句如下所示:

warehouse_connection = pyodbc.connect(f'Driver={DRIVER}'
                                          f';Server={SERVER}'
                                          f';Database={DATABASE}'
                                          f';UID={USERNAME}'
                                          f';PWD={PASSWORD}'
                                          ';Trusted_Connection=no')
warehouse_cursor = warehouse_connection.cursor()

我使用的驱动程序是用于 SQL Server 的 ODBC Driver 17,并且我的 odbcinst.ini 文件如下所示:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/home/vcap/deps/0/apt/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.6.so.1.1
UsageCount=1

我的脚本在我的本地机器上运行良好,因此我知道访问帐户信息是最新的,并且我还有其他使用该驱动程序的脚本运行良好,但是当我尝试部署到 Cloud Foundry 时,我收到以下错误:

pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout 
expired (0) (SQLDriverConnect)')

我尝试更改受信任的连接变量,确保我的 apt/环境是最新的,但我不确定我缺少什么。 Cloud Foundry 中的 pyodbc 有问题还是我有什么问题?

谢谢。

【问题讨论】:

  • 您是否具有从在 CF 上运行的应用程序到 SQL Server 的基本网络连接?我的建议是稳定应用程序,所以推一些东西让它运行。然后cf ssh 进入您的应用容器,看看您是否至少可以nc -v <server> <port> 并与您的服务器建立 TCP 连接。
  • 另外,stackoverflow.com/a/58105873/1585136 主要用于 PHP + MSSQL + ODBC,但您可以按照有关使用 apt-buildpack 和安装 mssql-tools 的部分进行操作。然后,您可以在 cf ssh 进入应用程序后从 cli 使用 sqlcmd。这是另一种验证是否可以从容器内部连接的方法,它将问题与 ODBC 设置和连接与代码中的某些内容区分开来。

标签: python pyodbc cloud-foundry


【解决方案1】:

万一有人回来查看这个,我们需要做的就是从该云铸造空间打开防火墙访问,然后它就起作用了。不久前发布了这个并意识到我应该回答它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2019-08-21
    • 2016-03-20
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多