2012-11-15 160 views
1

我們有託管網絡服務的Web服務器。數據庫(MySQL)數據庫服務器。兩者都不在LAN.Can我們可以連接沒有局域網的網絡服務器的數據庫嗎?如何在.net中從網絡服務器連接數據庫?

如果可能的話,過程是什麼?

+1

問題的哪個部分正好睏擾着你?連接字符串?防火牆和網絡?例如,你將如何連接到本地數據庫? – Groo

+0

兩個系統不在局域網內,因此無法連接數據庫(「錯誤:無法連接任何本地主機)。如果同一局域網中的數據庫正在連接,則可以將數據庫系統從網絡服務器連接到局域網。有什麼步驟? – user1727822

+0

非常不清楚的問題沒有上下文。 – Olaf

回答

1

Both are not in LAN

如果Web服務器和數據庫服務器不在同一個局域網內,那麼你必須跟你的IT部門,並要求他們,使他們之間的適當routing,並配置firewalls通過讓您的數據庫流量。如果這不是一個選項,但第三個LAN中有一臺服務器可以從兩臺服務器訪問,則可以在第三臺機器上安裝port forwarder

1

您可以通過IP地址訪問該服務器:

MySqlConnection cnn = new MySqlConnection("server=192.168.100.15;database=databasename;uid=xxxx;pwd=xxxx");

1

有兩件事情來檢查。

[編輯] PHP代碼如下,沒有意識到你使用的是.NET。

首先,連接到數據庫時使用了哪個db主機字符串?如果您使用'localhost'作爲數據庫主機,則它不起作用,因爲在Web服務器的同一臺計算機上沒有數據庫。您的主機設置需要包含正確的IP地址/端口:

define('myDbHost', '192.168.5.1:5000'); // something like that 

// or, when creating the connection (I am presuming you're using PHP) 
$mysqli = new mysqli("192.168.5.1:5000", "user", "password", "database"); 

第二個問題是確保該地址/端口組合到Web服務器可見。您必須能夠從您的Web服務器創建一個套接字到數據庫服務器上的該端口號。這更像是一個系統管理問題。

+0

奇妙.. c#6.0?:)請檢查標籤... – naveen

+0

對不起,最初沒有看到標籤。:-DI確實寫過我是*假設* PHP因爲mysql,我甚至看了@JackHughes的回答,並想知道爲什麼他寫了一個.NET示例。 – Groo