pyodbc在连接到SQL数据库“登录时无法打开数据库“ database3”时出错。”

问题描述 投票:1回答:1

我有一个我连接的数据库以前可以正常工作,几个月后又返回到脚本,现在它停止工作并在下面显示错误:

conn = pyodbc.connect('DRIVER = {SQL Server}; SERVER ='+ DB ['servername']+'; DATABASE ='+ DB ['database'] +'; Trusted_Connection = yes'+'; UID ='+ DB ['user'] +'; PWD ='+ DB ['password'])]

ProgrammingError:('42000','[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法打开数据库请求的数据库“ database3”登录。登录失败。 (4060)(SQLDriverConnect); [42000][Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法打开数据库登录请求的“ database3”。登录失败。 (4060)')

我可以使用SQL Server Server Management Studio版本18使用相同的凭据进行连接,并查询相关数据库。我正在使用以下版本号:

Python: 3.6.7 
Pandas: 1.0.3
pyODBC: 4.0.27 also tried upgrading this to 4.0.30.

我用来连接的代码是:

# parameters for connecting to SQL databse 
DB = {'servername': 'server\sqlexpress',
      'database': 'database3',
     'user':'sa',
     'password' : 'Password'}

# create the connection
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + DB['servername'] + ';DATABASE=' + DB['database'] + ';Trusted_Connection=yes' + ';UID=' + DB['user'] + ';PWD=' + DB['password'])

可以帮我解决这个问题吗?

sql-server python-3.x pyodbc
1个回答
1
投票

您应该提供UID=...;PWD=... OR Trusted_Connection=yes,但不能同时提供。如果要使用SQL身份验证(而不是Windows身份验证),请使用Trusted_Connection=no(或完全将其忽略)。

© www.soinside.com 2019 - 2024. All rights reserved.