gpt4 book ai didi

sql-server - sqlalchemy 使用的是哪个驱动程序?

转载 作者:行者123 更新时间:2023-12-03 08:16:34 26 4
gpt4 key购买 nike

我在使用 pyinstaller 时遇到 MS SQL 连接问题。当以交互模式运行时,一切都会按预期进行。编译为 exe 后,MS SQL 数据库连接在第一个查询时超时,并出现以下错误:

(pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. (53) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expire (0); ...

我的连接字符串类似于以下内容:

create_engine(
"mssql+pyodbc://USER:PASSWORD@SERVERIP/DB_NAME?driver=ODBC+Driver+17+for+SQL+Server"
)

在尝试诊断问题时,我使用 pyodbc.drivers() 打印出 pyodbc 可用的驱动程序(这显示了编译驱动程序与交互式驱动程序之间的巨大差异)以及驱动程序使用中使用

print(session.bind.dialect.name)
> pyodbc
print(session.bind.dialect.driver)
> mssql

它返回正在使用的上层Python模块,但不返回在较低层处理它的.dll。有什么方法可以找到正在使用的确切驱动程序吗?任何有关可能导致编译版本中出现错误的提示也将不胜感激。

最佳答案

问题可能出在您的连接字符串中。

要创建正确的连接字符串以使用 sqlAlchemy 连接到 MSSQL Server ODBC 驱动程序,请使用以下命令:

import urllib
from sqlalchemy import create_engine

server = 'serverName\instanceName,port' # to specify an alternate port
database = 'mydb'
username = 'myusername'
password = 'mypassword'

params = urllib.parse.quote_plus('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password)

engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

另外,您可以查看以下文章Connecting to Microsoft SQL Server using SQLAlchemy and PyODBC

关于sql-server - sqlalchemy 使用的是哪个驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69215029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com