2

我正在尝试设置我的 rails 项目(来宾:ubuntu),以便它可以访问我的主机操作系统窗口上的 sql server 数据库。我正在使用虚拟盒,但是我不确定我的“主机”应该在我的database.yml文件中设置为什么。如何找出将其设置为哪个 IP 地址和端口?当我在我的 Windows 操作系统上拥有该项目时,我能够将其配置为host:localhost

4

1 回答 1

1

我必须找到列出的默认网关。所以我在 Ubuntu 上打开终端并使用以下命令:netstat -rn. 这给出了以下结果......

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG        0 0          0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

从那里我注意到默认网关是10.0.2.2. 我设置我的 database.yml 如下:

development:    
  adapter: sqlserver
  host: 10.0.2.2
  database: Development
  username: username12345
  password: password12345
  pool: 5
  timeout: 5000

并且连接成功了!希望这可以帮助处于类似情况的其他人。

编辑:

因此,当我尝试在主机运行 SQLExpress 的计算机上进行相同的设置时,我遇到了一个非常相似的问题。下面我将概述我为使其正常工作所做的一些事情,因为它与一个过程有点不同。

  1. 您必须启用 TCP/IP 连接(在几个地方)并指定正在使用的端口。

    转到:Start > All Programs > Microsoft SQL SERVER 2008 > Configuration Tools > SQL Server Configuration Manager。然后在右窗格中展开SQL SERVER NETWORK CONFIGURATION并启用所有协议。现在,右键单击并Properties从右TCP/IP窗格中选择。在Protocol选项卡下确保“启用”设置为“是”。在IP Address选项卡下,我确保所有 IP 都设置为Enabled和的“是” Active。最后,我将端口添加1433到 IP8,这是我的127.0.0.1IP,也添加到IP All滚动框的最底部。一旦应用,我通过 SQL Server Management Studio 重新启动服务器(连接后右键单击连接并选择“重新启动”)我能够连接!

  2. 我还使用了一个稍微不同的database.yml文件。

development:  
  adapter: sqlserver  
  dataserver: 10.0.2.2:1433    
  host: 10.0.2.2  
  port: 1433  
  database: Development  
  username: username12345  
  password: password12345  
  pool: 5  
  timeout: 5000  
  1. 最后,记得给用户正确的权限。
于 2013-04-28T19:37:58.400 回答