2016-08-03 152 views
1

我一直看到此错误,并且无法连接到远程服务器上的数据库。TinyTDS:在配置文件中找不到服务器名称

我给出一个连接字符串到数据库中,如下所示:

data source=qsss.gar.de\SQL2012,3000;initial catalog=City;persist security info=True;user id=user_me;password=user_me##2009; 

现在,我已经创建了基于这样的连接字符串database.yml文件,如下所示:

development: 
    adapter: 'sqlserver' 
    host:  'qsss.gar.de\SQL2012,3000' 
    port:  1433 
    database: 'City' 
    username: 'user_me' 
    password: 'user_me##2009' 

而当我尝试运行服务器时,它始终打我与服务器名称找不到配置文件错误。

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? 

请试着帮我看看这是什么问题?

UPDATE:

我可以连接到使用SQLPro for MSSQL向导的服务器,具有完全相同的连接参数:

picture

它从向导工作,但不能使用代码TinyTDS !

+0

不熟悉,但主机名称可能只是“qsss.gar.de”(也可能是3000端口) –

+0

不,这一切都很好,我可以从SQLPro向导中精确地连接这些参数,但不能来自应用程序。 – zwiebl

+0

尝试将端口更改为3000,并从主机中删除3000,因为这与主机名无关。 – engineersmnky

回答

0

请试试这个

development: 
    adapter: 'sqlserver' 
    dataserver: 'qsss.gar.de\SQL2012:3000' 
    database: 'City' 
    username: 'user_me' 
    password: 'user_me##2009' 

您当前的配置是从两件事情

  • 首先你确定端口的痛苦,包括其在宿主值,因此这实际上看起来像qsss.gar.de\SQL2012,3000:1433

  • 第二次解释主机时,反斜杠会翻倍qsss.gar.de\\SQL2012,3000:1433

dataserver选项应该可以解决这个作为TinyTDS说,此选项将支持反斜线和端口hostname:port格式。我没有测试过,但根据文档,它应该是一个足够的解决方案。

+0

我试着像你写的,但它让我重新回到初始错误行:“服务器名在配置文件中未找到” :( – zwiebl

+0

什么让我困惑的是,我得到在命令行下,我尝试到达服务器:在2016年8月3日16时56分02秒+0200“开始GET‘/’为:: 1 所以GET命令就像是空的IP地址,它看起来怪异 – zwiebl

+0

我算了一下,如果我?将主机改为“qsss.gar.de”,而不是我能够连接的“qsss.gar.de \ SQL2012”,所以问题出在解析“\”的地方。我甚至需要将这部分“SQL2012”才能工作? – zwiebl

0

我有同样的问题,我能够通过在config.yml文件改变“主机”参数“数据服务器”来解决它。

同时检查运行应用程序的服务器是否能够解析数据库服务器的DNS名称,如果它没有放置服务器的IP。

我也使用Microsoft SQL数据库,只能解决“TinyTds :: Error:配置文件中找不到的服务器名称”更改上述文件后出现错误。

相关问题