sql-server - 连接到 SQL 数据库时出现 pyodbc 错误“无法打开登录请求的数据库“database3”。”
问题描述
我有一个我连接到的数据库,它以前可以工作,几个月后又回到脚本,现在它停止工作,我收到以下错误:
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 Driver][SQL Server]无法打开登录请求的数据库“database3”。登录失败。(4060) (SQLDriverConnect); [42000] [ Microsoft][ODBC SQL Server Driver][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'])
有人可以帮我解决这个问题吗?
解决方案
您应该提供UID=...;PWD=...
OR Trusted_Connection=yes
,而不是两者。如果您想使用 SQL 身份验证(而不是 Windows 身份验证),请使用Trusted_Connection=no
(或完全省略它)。