ruby-on-rails - TinyTds 无法连接到 Debian 上的 azure

标签 ruby-on-rails sql-server azure azure-sql-database tiny-tds

我正在尝试在 ruby​​ 2.2.3 上使用 tiny-tds gem 连接到 Azure SQL 数据库。我安装了 freetds-devfreetds-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 个多小时了...令我困惑的是它总是立即失败,所以这不是超时问题。

最佳答案

这与TinyTDS的版本无关,它已经支持Azure一段时间了。问题在于 FreeTDS 是如何编译的。它缺乏 Azure 所需的 OpenSSL 支持编译。完成后,您将在上面 tsql -C 的输出中看到 OpenSSL: yes

我们在 Using TinyTDS with Azure 中讨论了这一点自述文件部分。

添加: master 分支中的 TinyTDS 1.0 能够连接的原因是该版本在本地编译了 OpenSSL 和 FreeTDS。这是一项新功能,尚未准备好供公众使用。根据您的需求和系统级 FreeTDS 的使用情况,使用或...但答案仍然正确,您无法将 v0.7 用于 Azure 的原因是您的系统 FreeTDS 没有链接 OpenSSL。

关于ruby-on-rails - TinyTds 无法连接到 Debian 上的 azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33212066/

相关文章:

ruby-on-rails - 如何在 has_and_belongs_to_many 关系中设置 Rails 模型?

sql-server - T-SQL 不等于运算符与 Case 语句

c# - 为什么我会收到此错误?

c# - 如何在 Azure 通信服务聊天中附加文件?

Azure 流量管理器 - 按用户 IP 地址进行路由

ios - 从 ruby​​ on Rails 应用程序发送文件以在后台打印

ruby-on-rails - 将时间戳从 PostgreSQL 转换为查询中的时区 (Rails)

ruby-on-rails - Rails 按算法排序

mysql - SQLite 如何知道日期列是否是当前月份

azure - Azure Web 应用程序部署上的 503/417 错误