Python [Microsoft][ODBC驱动程序17 for SQL Server]登录超时已过期(0)(SQLDriverConnect)和#x27;)
我无法使用python从Unix连接到SQL server 由于其他依赖关系,我无法将SQL Server的ODBC驱动程序17替换为SQL Server的ODBC驱动程序13,如中所述 有人能提出一个替代方案吗 代码: 错误:Python [Microsoft][ODBC驱动程序17 for SQL Server]登录超时已过期(0)(SQLDriverConnect)和#x27;),python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我无法使用python从Unix连接到SQL server 由于其他依赖关系,我无法将SQL Server的ODBC驱动程序17替换为SQL Server的ODBC驱动程序13,如中所述 有人能提出一个替代方案吗 代码: 错误: sqlalchemy.exc.OperationalError: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout e
sqlalchemy.exc.OperationalError: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)') (Background on this error at: http://sqlalche.me/e/e3q8)
我的连接字符串看起来不同:
“DRIVER={ODBC DRIVER 17 for SQL Server};Server=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword”
利兹到
import pyodbc
connection = pyodbc.connect("DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword", autocommit=True)
您使用的不是UID,而是用户名等。所有以“my”开头的单词都必须替换为实际的数据库、用户和密码。您还应该删除
Trusted\u Connection=True代码>部分如Panagiotis Kanavos在评论中指出的。这表示您正在使用windows用户进行身份验证(这在linux上显然不可用)。这一回答没有说明降级。ODBC版本没有问题。OP在该注释中缺少一个库,并选择降级而不是安装缺少的库。Trusted_Connection=yes
表示无法在Linux上使用的Windows身份验证。您不能在同一连接字符串中使用它和SQL登录。实际的连接字符串是什么样子的?可能存在真正的超时错误,也可能是由不正确的值引起的问题。例如,SERVER='SERVER,port'
错误,服务器名称和端口不需要引用如果您仍然可用,我在执行相同的过程时遇到问题
import pyodbc
connection = pyodbc.connect("DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword", autocommit=True)