python - 无法连接到数据库。(pyodbc.Error) [Microsoft][ODBC Driver 17 for SQL Server]用户 '%user%' 登录失败。(18456) (SQLDriverConnect)
问题描述
我们已将 SQL Server 从版本 2012 迁移到 2017,现在我们无法连接到数据库。
(pyodbc.Error) ('28000', "[28000]
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user
'usintranet'. (18456) (SQLDriverConnect)")
有没有人有同样的问题?
我们使用python36和python3。
以下代码的参数是:
name: 'producao:integracao18'
type: 'mssql'
conf:
user: 'userlist'
password: 'password2019'
host: '176.1.1.1'
port: 134
database: 'CRM'
连接数据库的方法是:
def connect(self, driver, conf):
"""Connects to a database and returns the connection instance"""
conn = None
# see http://docs.sqlalchemy.org/en/latest/core/engines.html
if driver == 'sqlite':
conn = f"sqlite:///{conf['local']}"
elif driver == 'mysql':
conn = f"mysql://{conf['usuario']}:{conf['senha']}@{conf['host']}:{conf['porta']}/{conf['database']}"
elif driver == 'mssql':
conn = f"mssql+pyodbc://{conf['usuario']}:{conf['senha']}@{conf['host']}:{conf['porta']}/{conf['database']}"
# MSSQL needs pyodbc and a specific driver, you can check the available ones with pyodbc.drivers()
conn += '?driver=ODBC+Driver+17+for+SQL+Server'
解决方案
我没有遇到此错误,但我要验证的第一件事是您的 ODBC 设置仍然在您的主机上正确配置。
我不熟悉 pyodbc,但如果上面的提示没有帮助,您应该验证您的 pyodbc 版本是否与您正在使用的 ODBC 驱动程序兼容。
推荐阅读
- php - 如何使用jquery选择单选按钮和标签
- python - 避免从字符串中提取 IBAN 号码
- javascript - Groupby一个数组并使用jquery获取元素作为子数组
- php - 错误的 SQL 请求 - Laravel
- regex - 如何让我的正则表达式匹配重叠而没有无限错误?
- java - 在 Maven 中央部署一个版本
- css - Css加载字体:url中的#是什么意思以及如何添加GET参数?
- javascript - 使用谷歌表格中的谷歌应用脚本从系统或 url 读取图像并将图像发布到 API
- swiftui - SwiftUI - ReferenceFileDocument - 无法指示需要保存的文档
- node.js - 应用引擎部署因“无法验证 Node.js 二进制文件”而停止