我正在尝试设置我的rails项目(guest:ubuntu),以便它可以在我的主机操作系统窗口上访问sql server数据库。我正在使用虚拟盒子,但我不确定我的database.yml
文件中应该设置我的“主机”。如何找出要设置的IP地址和端口?当我在我的Windows操作系统上安装项目时,我能够将其配置为host:localhost
我必须找到列出的默认网关。所以我在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的计算机上执行相同的设置时遇到了类似的问题。下面我将概述我为使其工作所做的一些事情,因为它与流程略有不同。
Start > All Programs > Microsoft SQL SERVER 2008 > Configuration Tools > SQL Server Configuration Manager
。然后展开SQL SERVER NETWORK CONFIGURATION
并启用右窗格中的所有协议。现在,右键单击并从右侧窗格中选择Properties
中的TCP/IP
。在Protocol
选项卡下,确保“已启用”设置为“是”。在IP Address
标签下,我确保Enabled
和Active
的所有IP都设置为“Yes”。最后,我将我的端口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