Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:如何从virtualbox来宾(ubuntu)访问主机(windows)上的数据库?_Ruby On Rails_Windows_Ubuntu_Virtualbox - Fatal编程技术网

Ruby on rails Rails:如何从virtualbox来宾(ubuntu)访问主机(windows)上的数据库?

Ruby on rails Rails:如何从virtualbox来宾(ubuntu)访问主机(windows)上的数据库?,ruby-on-rails,windows,ubuntu,virtualbox,Ruby On Rails,Windows,Ubuntu,Virtualbox,我正在尝试设置我的rails项目(guest:ubuntu),以便它可以访问我的主机操作系统windows上的sql server数据库。我正在使用virtual box,但我不确定我的数据库.yml文件中的“主机”应该设置为什么。如何确定要将其设置为哪个IP地址和端口?当我在windows操作系统上安装该项目时,我能够将其配置为主机:localhost我必须找到列出的默认网关。所以我在Ubuntu上打开了终端并使用了以下命令:netstat-rn。结果如下 Kernel IP routing

我正在尝试设置我的rails项目(guest:ubuntu),以便它可以访问我的主机操作系统windows上的sql server数据库。我正在使用virtual box,但我不确定我的
数据库.yml
文件中的“主机”应该设置为什么。如何确定要将其设置为哪个IP地址和端口?当我在windows操作系统上安装该项目时,我能够将其配置为
主机: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的计算机上尝试执行相同的设置时,我遇到了一个非常类似的问题。下面我将概述一些我为使它工作所做的事情,因为这是一个有点不同的过程

  • 您必须启用TCP/IP连接(在几个位置)并指定正在使用的端口

    转到:
    Start>All Programs>Microsoft SQL SERVER 2008>Configuration Tools>SQL SERVER Configuration Manager
    。然后展开SQL SERVER网络配置,并启用右侧窗格中的所有协议。现在,右键单击并从右窗格的
    TCP/IP
    中选择
    Properties
    。在
    协议
    选项卡下,确保“启用”设置为“是”。在
    IP地址
    选项卡下,我确保所有IP都被设置为“Yes”,用于
    启用
    激活
    。最后,我将端口
    1433
    添加到IP8,这是我的
    127.0.0.1
    IP,也添加到滚动框底部的
    IP All
    。一旦应用了它,我通过SQLServerManagementStudio重新启动了服务器(连接后右键单击连接并选择“重新启动”),我就可以连接了

  • 我还使用了一个稍微不同的
    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