2012-11-15 123 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