提问者:小点点

连接到SQL数据库时出现pyodbc错误“无法打开登录请求的数据库”database3“


我有一个数据库,我连接到以前工作过,几个月后回到脚本,现在它停止工作,我得到下面的错误:

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

程序错误:('42000','[42000][Microsoft][ODBCSQL服务器驱动程序][SQL服务器]无法打开登录请求的数据库数据库数据库3。登录失败。(4060)(SQLDriverConnect);[42000][Microsoft][ODBCSQL服务器驱动程序][SQL服务器]无法打开登录请求的数据库数据库数据库3。登录失败。(4060)')

我可以使用SQL 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'])

能帮我解决这个问题吗?


共1个答案

匿名用户

您应该提供UID=。。。;PWD=受信任的\u连接=是,而不是两者都是。如果要使用SQL身份验证(与Windows身份验证相反),请使用Trusted\u Connection=no(或者干脆省略它)。