【问题标题】:pyodbc - cannot connect to DSNpyodbc - 无法连接到 DSN
【发布时间】:2018-05-22 12:42:46
【问题描述】:

我正在尝试连接到我的数据库,但无法建立连接。这是我的python代码:

def connectToDB():
    connection = None

    while connection is None:
        try:
            connection = pyodbc.connect(r'DSN=FootNet;UID=root;PWD=password')
        except:
            print("\n[DB connector]  Error connecting to database. Trying again in 1 sec.")

        time.sleep(1)
    return connection

我设置DSN如下:

当我点击测试时,连接成功。但我无法在 python 中连接。任何线索可能是什么问题?

任何帮助将不胜感激。


编辑:

我收到以下错误:

pyodbc.Error: ('IM014', '[IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application (0) (SQLDriverConnect)')

【问题讨论】:

  • Python 中是否有任何错误消息?
  • 没有这种代码,但是如何打印出错误?我只是猜测现在尝试阻止不成功,所以它会打印出我的消息。
  • 暂时移除 try-except 块
  • 建议:将来,不要只是一般的“连接数据库时出错”。消息,请考虑至少包含一些实际的错误消息,以指示具体问题是什么。当然,出于故障排除的目的,最好使用完整的堆栈跟踪。
  • 听起来您已经安装了 64 位版本的 ODBC 驱动程序,并试图从 32 位 Python 中使用它(反之亦然)。

标签: python mysql python-3.x odbc pyodbc


【解决方案1】:

根据错误信息,问题可能在于您使用的驱动程序和应用程序 (pyodbc) 之间的架构不匹配。

因此请确保驱动程序和应用程序都使用 32 位/64 位版本。

【讨论】:

    猜你喜欢
    • 2015-08-02
    • 2022-09-24
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2019-01-08
    • 2015-08-08
    相关资源
    最近更新 更多