我正在开发一个 C# 应用程序,该应用程序将使用位于我的网站中的远程 MySQL 数据库,该数据库托管在支持 PHP 和 MySQL 的 Linux 服务器上。
我尝试直接连接到 MySQL 数据库,但由于主机端的限制而无法连接。
有人可以帮我吗,我可以用这个限制来做吗?
你不能。服务器需要允许远程连接,如果这是不可能的,那么你就不走运了。
但是,可能还有另一种方式......如果您可以在可以连接的服务器上创建一个 Web 服务,那么您应该能够从任何地方虚拟地与 mysql 中的数据进行通信。
您需要访问远程计算机上的端口 3306。您可以使用 telnet 或类似方法测试您是否可以访问此端口
telnet ip 3306
这些是您拥有的解决方案:
A)创建本地开发环境:您没有提供太多信息。如果我的猜测是正确的,您正在本地开发,稍后您计划将您的 c# 应用程序部署到 Web 服务器,该服务器也将包含 mysql db。
B)使用VPN访问mysql:如果A不适用,另一种解决方案是在包含mySQL的Web服务器和运行您的应用程序的PC之间安装某种VPN。设置好 VPN 并且您可以访问端口 3306(如前所述通过 telnet),您的应用程序就可以运行了。
C)打开端口访问 mysql:最简单的解决方案是要求管理员为您打开端口。99% 的时候答案是否定的,所以我不会走这条路。(也许您的网络提供商中有某种解决方案允许为给定 IP 打开特定端口,但我对此表示怀疑)
您可以尝试创建一种 API 方式,如果您的服务器阻止来自 Web 的传入连接,只需重载您需要与 PHP 一起使用的 MySQL 函数并将“echo”结果作为服务器,使用您的 c# 应用程序将它们解析为客户端,它是组织这样一个系统的唯一方法,或者,您可以允许传入到 MySQL 的连接,然后在CodeProject上观看这篇文章