如何连接从c#在Web服务器上运行的MySQL?

如何连接从c#在Web服务器上运行的MySQL?

问题描述:

我正在使用C#应用程序,它将使用位于我的网站上的远程MySQL数据库,该数据库位于Linux服务器上,支持PHP & MySQL支持。如何连接从c#在Web服务器上运行的MySQL?

我试图直接连接到MySQL数据库,但由于我的主机端的限制,无法连接。

有人可以帮助我,我可以做这个限制吗?

+0

当你尝试远程连接时,你会得到什么错误?你是否与你的提供者谈过,以确认他们不允许外部数据库连接? – 2013-02-13 12:34:19

+0

如果连接端口未设置为打开,您将无法访问数据库,请向您的提供商了解端口的可用性 – NetStarter 2013-02-13 12:44:55

您需要访问远程机器上的端口3306。您可以测试,如果你使用telnet或类似

telnet ip 3306 

这些都是你的解决方案可以访问该端口:

A)创建本地开发环境:你没有提供太多的信息。如果我的猜测是正确的,那么您正在本地开发,稍后您将计划将c#应用程序部署到Web服务器,该服务器也将包含mysql db。

  • 在本地计算机
  • 安装mysql获取数据库的副本。
  • 配置你的C#程序连接到你的本地mysql(localhost:3306)
  • 当你将代码部署到你的web服务器时,它也会连接到你的“localhost 3306”,它将被安装到web上服务器。

B)使用VPN来访问MySQL:如果A是不适用的另一种解决方案在于安装某种VPN的包含MySQL和运行应用程序的计算机网络服务器之间。一旦VPN设置好了,你可以访问端口3306(通过telnet,如前所述),那么你的应用程序将工作。

C)打开端口以访问mysql:最简单的解决方法是要求管理员为您打开端口。 99%的答案是否定的,所以我不会沿着这条路线走。 (也许网络提供商有某种解决方案允许为特定的IP打开特定的端口,但我怀疑它)

你不行。服务器需要允许远程连接,如果这是不可能的,那么你的运气不足。

但是,可能有另一种方法......如果您可以在服务器上创建可以连接的Web服务,那么您应该能够在任何地方虚拟地与数据进行通信。

如果您的服务器阻止来自网络的传入连接,您可以尝试创建一种API方式,只是重载MySQL函数,您需要使用PHP和“回声”结果作为服务器,将它们解析为客户端与您的C#应用​​程序,这是组织这样一个系统的唯一方法,或者,您可以允许传入连接到MySQL ,然后看这篇文章CodeProject