我正在尝试使用ruby 2.2.3上的tiny-tds gem连接到Azure SQL数据库。我安装了freetds-dev和freetds-bin,一切似乎都很正常。
tsql -C
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 4.2
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes和正在做的
TDSVER=7.1 tsql -U xxxxx -P xxxxx -H mydatabase.database.windows.net -p 1433连接正常(我得到一个提示)。
我安装了tiny_tds gem:
/home/avril14th/.rvm/gems/ruby-2.2.3/gems/tiny_tds-0.7.0并尝试连接
avril14th@avril14th:~/src/white2$ pry
[1] pry(main)> require 'tiny_tds'
=> true
[2] pry(main)> client = TinyTds::Client.new username: 'xxxx', password: 'xxxxx', host: 'xxxxx.database.windows.net', :azure => true
TinyTds::Error: Adaptive Server connection failed我已经尝试了很多其他的参数组合,如tiny_tds github page中所述,但都不起作用。
任何帮助都是非常感谢的。我已经为此尝试了5个多小时,now...What让我困惑的是它总是立即失败,所以这不是一个超时的问题。
发布于 2015-10-20 08:53:43
这与TinyTDS的版本无关,它支持Azure已经有一段时间了。问题在于FreeTDS是如何编译的。它缺少OpenSSL支持的编译,而这是Azure所需要的。完成后,您将在上面的tsql -C输出中看到OpenSSL: yes。
我们在自述文件的Using TinyTDS with Azure部分讨论了这一点。
补充道:主分支中的TinyTDS 1.0之所以可以连接,是因为该版本在本地编译了OpenSSL和FreeTDS。这是一个新功能,还没有准备好供公众使用。根据您的需要和系统级FreeTDS的用法,使用或...但答案仍然是正确的,你不能为Azure使用v0.7的原因是因为你的系统FreeTDS没有链接OpenSSL。
https://stackoverflow.com/questions/33212066
复制相似问题