zwi*_*ebl 5 ruby sql-server ruby-on-rails freetds tiny-tds
我一直看到此错误,并且无法连接到远程服务器上的数据库。
给我一个到数据库的连接字符串,如下所示:
data source=qsss.gar.de\SQL2012,3000;initial catalog=City;persist security info=True;user id=user_me;password=user_me##2009;
Run Code Online (Sandbox Code Playgroud)
现在,我database.yml基于该连接字符串创建了一个文件,如下所示:
development:
adapter: 'sqlserver'
host: 'qsss.gar.de\SQL2012,3000'
port: 1433
database: 'City'
username: 'user_me'
password: 'user_me##2009'
Run Code Online (Sandbox Code Playgroud)
当我尝试运行服务器时,它总是以配置文件中找不到的服务器名称打我。
opts[:port] ||= 1433
opts[:dataserver] = "#{opts[:host]}:#{opts[:port]}" if opts[:dataserver].to_s.empty?
connect(opts) // ERROR AT THIS LINE
end
def tds_73?
Run Code Online (Sandbox Code Playgroud)
请尝试帮助我弄清楚这是什么问题?
更新:
我可以使用SQLPro for MSSQL向导使用完全相同的连接参数连接到服务器:
它可以通过向导运行,但不能通过TinyTDS的代码运行!
请尝试这个
development:
adapter: 'sqlserver'
dataserver: 'qsss.gar.de\SQL2012:3000'
database: 'City'
username: 'user_me'
password: 'user_me##2009'
Run Code Online (Sandbox Code Playgroud)
您当前的配置受到两件事的影响
首先,您指定一个端口并将其包含在主机值中,因此这实际上看起来像qsss.gar.de\SQL2012,3000:1433
其次,当解释主机时,反斜杠将加倍,例如qsss.gar.de\\SQL2012,3000:1433
该dataserver选项应该可以解决此问题,因为 TinyTDS 表示该选项将支持反斜杠和端口hostname:port格式。我还没有对此进行测试,但根据文档,它应该是一个足够的解决方案。
| 归档时间: |
|
| 查看次数: |
3634 次 |
| 最近记录: |