将C#与MySQL上的远程数据库连接

将C#与MySQL上的远程数据库连接,c#,mysql,C#,Mysql,我正在尝试将MySQL数据库与C#应用程序连接,MySQL数据库安装在局域网的服务器上,可以访问互联网。 因此,我需要使用C#连接该数据库。我找到的大多数答案都解释了在连接字符串中使用服务器的IP,但在本例中,服务器的IP是私有IP,公共IP是调制解调器或接入点的IP,服务器从中获得Internet访问。 基本上,拓扑结构是: 应用程序的计算机-接入点-互联网-接入点-带有专用IP的服务器。 如果您与数据库服务器位于同一LAN上,则应直接连接到专用LAN ip,我们将不胜感激。。如果它正在通过接

我正在尝试将MySQL数据库与C#应用程序连接,MySQL数据库安装在局域网的服务器上,可以访问互联网。 因此,我需要使用C#连接该数据库。我找到的大多数答案都解释了在连接字符串中使用服务器的IP,但在本例中,服务器的IP是私有IP,公共IP是调制解调器或接入点的IP,服务器从中获得Internet访问。 基本上,拓扑结构是: 应用程序的计算机-接入点-互联网-接入点-带有专用IP的服务器。
如果您与数据库服务器位于同一LAN上,则应直接连接到专用LAN ip,我们将不胜感激。

。如果它正在通过接入点或您的主防火墙,那么您需要在AP和专用服务器之间设置适当的端口转发,以便它适当地转发端口请求。如果这些转发不到位,您将无法从WAN端连接到它,因为AP需要知道在哪里转发这些请求

范例

端口3306上的请求->公共AP->转发规则(3306到LAN IP 192.168.1.105)->转发到192.168.1.105的请求


如果没有规则,AP只会删除请求,因为它不想与之有任何关系

据我所知,我的字符串连接将是:“SERVER=(AP的IP);Port=3306;DATABASE=mydb;UID=user;pwd=pass;”但在AP中,服务器在哪里,我必须将端口“3306”设置为MySQL服务,并将请求重定向到服务器,这是正确的吗?是的,您需要在AP上设置正确的端口转发,以便它在该端口上看到请求时知道向何处发送请求。服务器和客户机在同一个局域网上吗?服务器和客户机在不同的局域网上。啊,好的,那么是的,规则适用。在MySQL服务器端处理WAN请求的AP需要配置为将这些请求正确转发到其LANI上的服务器。我已经在AP中配置了端口,但是当我尝试连接MySQL数据库时,出现错误“无法连接到任何指定的MySQL主机”。