Rails:如何从virtualbox guest(ubuntu)访问我的主机(windows)上的数据库?

问题描述 投票:2回答:1

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

ruby-on-rails windows ubuntu virtualbox
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标签下,我确保EnabledActive的所有IP都设置为“Yes”。最后,我将我的端口1433添加到IP8,这是我的127.0.0.1 IP,也是在滚动框最底部的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. 最后,请记住为用户提供正确的权限。
© www.soinside.com 2019 - 2024. All rights reserved.