2013-04-28 72 views
2

我試圖設置我的rails項目(guest:ubuntu),以便它可以訪問我的主機操作系統窗口上的sql server數據庫。我使用虛擬盒子,但是,我不確定我的「主機」應該設置在我的database.yml文件中。我如何知道將哪個IP地址和端口設置爲?當我在我的Windows操作系統上的項目,我能夠配置它到host:localhostRails:如何從虛擬機客戶機(ubuntu)訪問我的主機(Windows)上的數據庫?

回答

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並在右窗格中啓用所有協議。現在,右鍵單擊並從右側窗格中的TCP/IP中選擇Properties。在Protocol選項卡下,確保「已啓用」設置爲「是」。在IP Address標籤下,我確定所有的IP都設置爲「是」,對於EnabledActive。最後,我將我的端口1433添加到了IP8,這是我的127.0.0.1 IP,也添加到滾動框最底部的IP All。一旦應用,我通過SQL Server Management Studio重新啓動服務器(右鍵單擊連接,然後選擇「重新啓動」),我可以連接!

  2. 我還使用了一個略有不同的database.yml文件。

    發展: 適配器:SQLSERVER 數據服務器:10.0.2.2:1433
    主持人:10.0.2.2 端口:1433 數據庫:發展 用戶名:username12345 密碼:password12345 池:5 超時:5000

  3. 最後,請記住給予用戶正確的權限。

相關問題