使用pyODBC,unixODBC和FreeTDS连接到MS SQL Server时出错(在Mac上)

RJH2

使用pyODBC-> unixODBC-> FreeTDS-> MS SQL堆栈尝试在python中连接到MS SQL Server时出现错误。我已经花了很多时间,如果您遇到这个问题,但遇到一些更基本的问题,就无法在这里这里工作,那么这里有很多宝贵的资源

但是,我的问题是(我认为)非常接近这种令人沮丧的体验的终点的错误。具体来说,以下代码在jupyter笔记本中:

pyodbc.connect(
    'DRIVER=/usr/local/lib/libtdsodbc.so;'
    'SERVER=MyServerIP;'
    'PORT=1433;'
    'DATABASE= DatabaseName;'
    'UID=MyUsername;'
    'PWD=MyPassword')

给我这个错误:

---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
<ipython-input-7-d6b29b647116> in <module>()
      1 pyodbc.connect(
----> 2     'DRIVER = /usr/local/lib/libtdsodbc.so;'
      3     'SERVER = MyServerIP;'
      4     'PORT = 1433;'
      5     'DATABASE = DatabaseName'

Error: ('HY000', '[]  (20013) (SQLDriverConnect)’)

如果我替换为'DRIVER = / usr / local / lib / libtdsodbc.so;' 使用“ DRIVER = FreeTDS;” 我得到:

---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
<ipython-input-12-607f0d66e615> in <module>()
      1 pyodbc.connect(
----> 2     'DRIVER=FreeTDS;'
      3     'SERVER= MyServerIP;'
      4     'PORT=1433;'
      5     'DATABASE= DatabaseName;'

Error: ('00000', '[00000] [iODBC][Driver Manager]dlopen(FreeTDS, 6): image not found (0) (SQLDriverConnect)')

这使我相信unixODBC-> FreeTDS连接有问题,因为引用了iODBC。换句话说,除非我专门提供FreeTDS驱动程序的路径,否则它似乎会忽略我的odbcinst.ini和odbc.ini文件,它们将FreeTDS及其位置引用为我的驱动程序(请参见下文)。

从终端运行tsql和isql时,两者都与服务器建立了良好的连接。

但是,当我运行osql时,出现以下错误:

$ osql -S MyServerIP -U MyUsername -P MyPassword
checking shared odbc libraries linked to isql for default directories...
/usr/local/bin/osql: line 53: ldd: command not found
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strings: can't open file:  (No such file or directory)
osql: problem: no potential directory strings in "/usr/local/bin/isql"
osql: advice: use "osql -I DIR" where DIR unixODBC\'s install prefix e.g. /usr/local
isql strings are:
checking odbc.ini files
    reading /Users/myname/.odbc.ini
[MyServerIP] not found in /Users/myname/.odbc.ini
    cannot read "/odbc.ini"
osql: error: unable to locate MyServerIP in any odbc.ini

我的设置背景

我的连接是使用第一段中链接的两个资源构建(以及重建和重建)的,我的完整设置如下所示:

环境

Mac OSX 10.11.5

Microsoft SQL Server 2012 – AWS EC2实例(云)

水蟒4.0

的Python 3.5.1

Jupyter笔记本电脑4.1.0

连接堆栈

unixODBC –使用自制软件安装

FreeTDS –使用homebrew通过以下命令安装:`$ brew install

freetds --with-unixodbc`

pyODBC 3.0.10 –使用conda install安装

MS SQL – AWS EC2实例(云)

参考文件

我的freetds.conf文件内容如下:

[MYSERVERNAME]
    host = MyServerIP
    port = 1433
    tds version = 7.3
    client charset = UTF-8

我的odbcinst.ini文件的内容如下:

[FreeTDS]
Description = TD Driver (MSSQL)
Driver = /usr/local/lib/libtdsodbc.so
Setup = /usr/local/lib/libtdsodbc.so
FileUsage = 1

我的odbc.ini文件的内容如下:

[MYSERVERNAME]
Driver = FreeTDS
Server = MyServerIP
Port = 1433

我完全不知所措,花了比我应该花的时间还要多得多的时间。如果有人有任何建议,我将永远感激不已。

谢谢。

RJH2

好吧,我们已经解决了它-在本页和此处的许多人的帮助下,追逐了许多盲目的小巷。

正如(最终)怀疑的那样,它是连接中的pyodbc链接。我是从Anaconda软件包存储库下载的,使用的是pyodbc v3.0.10。解决方案是v.3.0.9。一旦我卸载了v3.0.10,从pypi存储库下载了v3.0.9,然后构建并安装了自己的conda程序包,就可以了。

我采取的步骤如下(请注意,这些步骤特定于anaconda环境):

conda uninstall pyodbc

conda skeleton pypi pyodbc --version 3.0.9

conda build pyodbc

conda install pyodbc=3.0.9 --use-local

一旦我回到Jupyter笔记本并运行上面的相同代码,它就建立了良好的连接。

我不知道v.3.0.10有什么问题,或者仅是anaconda.org在其存储库中具有的文件。我也在pyodbc github页面上发布了一些内容,但是它看起来并不那么活跃。

无论如何,谢谢大家的帮助。我希望这可以节省一些时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用pyODBC,unixODBC和FreeTDS连接到MS SQL Server时出错(在Mac上)

来自分类Dev

使用UnixODBC和FreeTDS连接到Ubuntu中的Pervasive SQL Server?

来自分类Dev

使用UnixODBC和FreeTDS连接到Ubuntu中的Pervasive SQL Server?

来自分类Dev

pyodbc在RedHat 5.4上不起作用。尝试使用unixODBC和FreeTDS连接到ms-sql数据库服务器?

来自分类Dev

使用freetds和unixODBC在SQL Server上运行带有重音符号(á,é,í,ó,ú)的查询

来自分类Dev

使用PYODBC和FreeTDS从SQL Server检索记录

来自分类Dev

使用pyodbc和sqlalchemy连接到SQL Server,不能使用“ use database_name;”

来自分类Dev

连接到SQL Server实例时出错

来自分类Dev

连接到SQL Server 2012时出错

来自分类Dev

连接到sql server时出错

来自分类Dev

在 Linux 中使用 RODBC 连接到 SQL Server 时出错

来自分类Dev

在 Mac 上使用 isql 连接到 MS SQL Server 数据库

来自分类Dev

无法使用PYODBC连接到网络外部的远程SQL Server

来自分类Dev

使用JRuby和Microsoft JDBC Driver 4.0连接到SQL Server实例时出错

来自分类Dev

使用FreeTDS和UnixODBC。能够连接但无法从isql或RODBC执行任何SQL命令

来自分类Dev

使用FreeTDS和UnixODBC。能够连接但无法从isql或RODBC执行任何SQL命令

来自分类Dev

PyOdbc无法连接到SQL Server实例

来自分类Dev

使用pyodbc连接到本地SQL Server时登录超时过期错误

来自分类Dev

无法使用FreeTDS连接到Azure SQL

来自分类Dev

连接到SQL Server.PDOException对象时出错(Azure)

来自分类Dev

pyspark jdbc连接到SQL Server时出错

来自分类Dev

在Docker容器中连接到SQL Server时出错

来自分类Dev

尝试连接到SQL Server数据库时出错

来自分类Dev

尝试连接到SQL Server数据库时出错

来自分类Dev

尝试连接到SQL Server数据库时出错

来自分类Dev

尝试连接到SQL Server数据库时出错

来自分类Dev

建立与SQL Server的连接时出错

来自分类Dev

在Mac上安装`pymssql`时出错-FreeTDS

来自分类Dev

连接到 MS SQL 服务器时出错

Related 相关文章

  1. 1

    使用pyODBC,unixODBC和FreeTDS连接到MS SQL Server时出错(在Mac上)

  2. 2

    使用UnixODBC和FreeTDS连接到Ubuntu中的Pervasive SQL Server?

  3. 3

    使用UnixODBC和FreeTDS连接到Ubuntu中的Pervasive SQL Server?

  4. 4

    pyodbc在RedHat 5.4上不起作用。尝试使用unixODBC和FreeTDS连接到ms-sql数据库服务器?

  5. 5

    使用freetds和unixODBC在SQL Server上运行带有重音符号(á,é,í,ó,ú)的查询

  6. 6

    使用PYODBC和FreeTDS从SQL Server检索记录

  7. 7

    使用pyodbc和sqlalchemy连接到SQL Server,不能使用“ use database_name;”

  8. 8

    连接到SQL Server实例时出错

  9. 9

    连接到SQL Server 2012时出错

  10. 10

    连接到sql server时出错

  11. 11

    在 Linux 中使用 RODBC 连接到 SQL Server 时出错

  12. 12

    在 Mac 上使用 isql 连接到 MS SQL Server 数据库

  13. 13

    无法使用PYODBC连接到网络外部的远程SQL Server

  14. 14

    使用JRuby和Microsoft JDBC Driver 4.0连接到SQL Server实例时出错

  15. 15

    使用FreeTDS和UnixODBC。能够连接但无法从isql或RODBC执行任何SQL命令

  16. 16

    使用FreeTDS和UnixODBC。能够连接但无法从isql或RODBC执行任何SQL命令

  17. 17

    PyOdbc无法连接到SQL Server实例

  18. 18

    使用pyodbc连接到本地SQL Server时登录超时过期错误

  19. 19

    无法使用FreeTDS连接到Azure SQL

  20. 20

    连接到SQL Server.PDOException对象时出错(Azure)

  21. 21

    pyspark jdbc连接到SQL Server时出错

  22. 22

    在Docker容器中连接到SQL Server时出错

  23. 23

    尝试连接到SQL Server数据库时出错

  24. 24

    尝试连接到SQL Server数据库时出错

  25. 25

    尝试连接到SQL Server数据库时出错

  26. 26

    尝试连接到SQL Server数据库时出错

  27. 27

    建立与SQL Server的连接时出错

  28. 28

    在Mac上安装`pymssql`时出错-FreeTDS

  29. 29

    连接到 MS SQL 服务器时出错

热门标签

归档