我正在尝试设置我的 rails 项目(来宾:ubuntu),以便它可以访问我的主机操作系统窗口上的 sql server 数据库。我正在使用虚拟盒,但是我不确定我的“主机”应该在我的database.yml
文件中设置为什么。如何找出将其设置为哪个 IP 地址和端口?当我在我的 Windows 操作系统上拥有该项目时,我能够将其配置为host:localhost
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 的计算机上进行相同的设置时,我遇到了一个非常相似的问题。下面我将概述我为使其正常工作所做的一些事情,因为它与一个过程有点不同。
您必须启用 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.1
IP,也添加到IP All
滚动框的最底部。一旦应用,我通过 SQL Server Management Studio 重新启动服务器(连接后右键单击连接并选择“重新启动”)我能够连接!我还使用了一个稍微不同的
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
- 最后,记得给用户正确的权限。