我已经尝试了两天,以便让我的Debian 8 Google Cloud计算机连接到Microsoft SQL 2012数据库。我知道数据库是可以的,因为在Windows中这样做没有问题。现在,我试图将一些用Python编写的网站代码从Windows迁移到Debian,但是我无法访问构成网站重点的数据库。
当然,我已经在这个主题上做了很多搜索。经常发生的情况是,我发现了相互矛盾的信息,而每本说“正确”的指南都令我失望。最好的是
FreeTDS email list
没有启动,或者至少是自动拒绝新订阅者。
就像我说的,我在GCloud服务器上的Debian 8上。由于身份验证密钥问题,SCP无法正常工作,因此我只能访问外壳程序,并且只能复制到主目录或从主目录复制。我已经安装了UnixODBC,tdsodbc和freetds,以及一些我发现有人建议的软件包。这都是sudo apt-get
的全部来源,而不是来源或任何网站的直接来源。
我的文件不在/etc
中,它们在/etc/freetds
中。我还找到了一些指南,说我需要sudo cp /etc/freetds/freetds.conf ~/.freetds.conf
。注意“。”在目标文件名的开头。我也有/etc/freetds/odbc.ini
,它定义了我的DSN。在freetds.conf
中,我定义一个数据库条目,并且odbc.ini
选项中的“数据库名称”设置为与freetds.conf
中的节名称相同的值。我在/etc/odbcinst.ini
中定义了我的驱动程序(不,我不知道为什么在/ etc中,但是其他驱动程序在/etc/freetds
中)。下面,我粘贴了三个文件。请注意,我从第一个注释中删除了注释,以使此处的内容简短一些。注释在实际文件中是完整的。
我在那里有安装线,还有其他一些,但是
one post I found
说没有那个和其他几行,它会更好。
这是有趣的部分:tsql完美运行-如果我执行tsql -S DBName -U username
,它会连接,但是isql
每次都会失败,并出现相同的错误。总是如此
[IM002][unixodbc][driver manager] No data source name found, and no default driver specified.
[ISQLERROR]: Could not SQLConnect.
如果我给
isql
一个根本没有定义的数据库的名称,则会得到完全相同的错误。例如,我会收到IM002
错误,isql -v testabc
这向我表明,某些东西没有找到它需要的所有
configuration/ini
文件。但是tsql works
,而isql
(当然还有我的Python脚本)不起作用。我是Debian的新手,并且只能通过SSH访问该Debian机器,因此我无法使用GUI工具来简化此操作。我对Bash和VIM相当满意,我只是不知道哪个包在哪里寻找什么文件。我也不知道应该采取哪些措施或重新投入使用,以使工作正常进行。 最佳答案
为了使此工作正常,我第一篇文章中详细介绍的配置实际上可以正常工作。唯一的问题是odbc.ini
放在错误的位置。sudo cp /etc/freetds/odbc.ini /etc/odbc.ini
会成功的或者只是首先将odbc.ini
(您可能必须创建)放在/etc
中。显然只有freetds.conf
属于/etc/freetds
。
关于debian - 无法使用FreeTDS连接到Debian 8上的MS SQL 2012数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37053714/