我有一个我连接的数据库以前可以正常工作,几个月后又返回到脚本,现在它停止工作并在下面显示错误:
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'])
可以帮我解决这个问题吗?
您应该提供UID=...;PWD=...
OR Trusted_Connection=yes
,但不能同时提供。如果要使用SQL身份验证(而不是Windows身份验证),请使用Trusted_Connection=no
(或完全将其忽略)。