gpt4 book ai didi

python - 无法通过turbodbc连接到数据库

转载 作者:行者123 更新时间:2023-11-29 07:04:07 35 4
gpt4 key购买 nike

TLDR:不要使用 unicode 驱动程序,使用 ansi!

<小时/>

我想通过 TurbODBC 而不是 Pandas/SQLAlchemy 连接到数据库。

我现在做了什么:

  • 安装unixodbc
  • 安装turbodbc
  • 安装 iODBC
  • 安装适用于 ODBC 的 Mysql 连接器
  • 在 iODBC Admin 中配置端口和服务器
  • 使用用户名和密码在 iODBC Admin 中测试连接:工作正常!

现在我尝试执行以下操作:

from turbodbc import connect
connect(dsn="mydsn", user="myuser", password="mypass")

并收到以下错误消息:

---------------------------------------------------------------------------
DatabaseError Traceback (most recent call last)
<ipython-input-2-bbbc3a4c2880> in <module>()
----> 1 connect(dsn="mydsn", user="myuser", password="mypass")

/Users/myuser/anaconda2/lib/python2.7/site-packages/turbodbc/exceptions.pyc in wrapper(*args, **kwds)
31 return f(*args, **kwds)
32 except InternError as e:
---> 33 raise DatabaseError(str(e))
34 return wrapper

DatabaseError: ODBC error
state: H

我现在不知道该怎么办,也没有发现与此错误有关的任何问题。

如果有人能帮助我,我会非常高兴,提前致谢! ;-)

更新

我在 R 中尝试使用 RODBC,工作正常。所以我确信这是 TurbODBC 的问题,但现在无法调试(我认为是 C++)代码....

更新#2

我将设置文件 .odbc.ini 中的 Mysql Connector for ODBC 驱动程序更改为 ansi 驱动程序。我认为这必须是unicode,因为数据库包含unicode表...但是对于ansi,当我在使用ansi驱动程序时在设置文件中手动将编码设置为utf8时,一切正常(仅)。不知道错误为何或如何发生,但此解决方法有效。

最佳答案

以下是一些建议:

  1. 错误消息似乎有些不完整。这可能表明turbodbc构建不正确(它是使用unixodbc header 进行测试的)。
  2. 如果turbodbc是用unixodbc构建的,它将使用unixodbc的数据源配置。它不会使用为 iODBC 配置的配置。
  3. 您可以使用isql <dsn> <user> <password> -v检查unixodbc是否可以连接到您的数据库。 .
  4. 确保 unixodbc 的环境变量指向您的 odbc.ini 。这是通过 export ODBCINI=/path/to/odbc.ini 完成的.
  5. 调整您的odbc.ini直到isql可以连接成功。然后再次尝试turbodbc。

如果您仍然认为这是一个错误,请通过 https://github.com/blue-yonder/turbodbc/issues 报告。 .

关于python - 无法通过turbodbc连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42390287/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com