无法使用FreeTDS连接到Debian 8上的MS SQL 2012数据库

无法使用FreeTDS连接到Debian 8上的MS SQL 2012数据库,debian,odbc,freetds,Debian,Odbc,Freetds,我花了两天时间试图让我的Debian 8 Google云计算机连接到Microsoft SQL 2012数据库。我知道数据库没问题,因为我在Windows中这样做没有问题。现在我正试图将一些用Python编写的网站代码从Windows迁移到Debian,但我无法访问数据库,而数据库正是网站的核心所在 当然,我在这个话题上做了很多搜索。正如经常发生的那样,我发现了相互矛盾的信息,而每一个说这是“正确”的指南都让我失望。最重要的是 它没有启动,或者至少是自动拒绝新订户 正如我所说,我在Debian8

我花了两天时间试图让我的Debian 8 Google云计算机连接到Microsoft SQL 2012数据库。我知道数据库没问题,因为我在Windows中这样做没有问题。现在我正试图将一些用Python编写的网站代码从Windows迁移到Debian,但我无法访问数据库,而数据库正是网站的核心所在

当然,我在这个话题上做了很多搜索。正如经常发生的那样,我发现了相互矛盾的信息,而每一个说这是“正确”的指南都让我失望。最重要的是 它没有启动,或者至少是自动拒绝新订户

正如我所说,我在Debian8上,在GCloud服务器上。由于身份验证密钥问题,SCP无法工作,因此我只有shell访问权限,只能复制到主目录或从主目录复制。我已经安装了UnixODBC、tdsodbc和freetds,另外还有一些我发现人们建议的软件包。这是所有的
sudoapt-get
,不是从源代码或直接从任何网站获得的

我的文件不在
/etc
中,它们在
/etc/freetds
中。我还发现一些指南说我需要
sudo cp/etc/freetds/freetds.conf~/.freetds.conf
。请注意目标文件名开头的“.”。我还有定义DSN的
/etc/freetds/odbc.ini
。在
freetds.conf
中,我定义了一个数据库条目,
odbc.ini
中的“Databasename”选项设置为与
freetds.conf
中的节名相同的值。我在
/etc/odbcinst.ini
中定义了我的驱动程序(不,我不知道为什么它在/etc中,但是其他的在
/etc/freetds
中)。下面我粘贴了我的三个文件。请注意,我已经删除了第一篇文章中的注释,以使这里的内容简短一点。注释在实际文件中是完整的

我有安装线在那里,还有一些其他的,但是 他说如果没有这条线和其他几条线,效果会更好

有趣的是: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

这对我来说意味着有些东西找不到它需要的所有
配置/ini
文件。但是
tsql工作
,而
isql(当然还有我的Python脚本)不工作。我是Debian新手,对Debian机器只有SSH访问权限,所以我不能使用GUI工具来简化这一过程。我对Bash和VIM相当熟悉,只是不知道什么包在哪里查找什么文件。我也不知道我应该拿出或放回什么选项,如果有的话,让事情顺利进行

为了让它工作起来,我在第一篇文章中详细介绍的配置实际上工作得很好。唯一的问题是,
odbc.ini
位于错误的位置。
sudo cp/etc/freetds/odbc.ini/etc/odbc.ini

我会成功的。或者将
odbc.ini
(您可能必须创建)放在
/etc
的第一位。显然只有
freetds.conf
属于
/etc/freetds

我想我有它。一时兴起,我尝试了sudocp/etc/freetds/odbc.ini/etc/odbc.ini。我一做到这一点,isql就工作了,然后我的Python脚本就工作了。因此,我想我的文章更像是一个指南,但如果您使用的是Debian 8系统,请确保将odbc.ini放在/etc中。也许还有其他系统,我不知道。