使用 PHP 连接到远程 MySQL 数据库的网页

Posted

技术标签:

【中文标题】使用 PHP 连接到远程 MySQL 数据库的网页【英文标题】:Web page connection to a remote MySQL database using PHP 【发布时间】:2014-06-06 02:40:59 【问题描述】:

我设法使用 php 脚本将我的网页连接到远程 mysql 服务器,但这需要打开远程服务器上的端口 3306,这是一个安全问题。 我需要为我的网站访问者提供此功能,这当然消除了允许某些预定义 IP 地址的想法。

那么,我该怎么做呢,也许使用 SSH 隧道之类的东西?

谢谢 亚历克斯

【问题讨论】:

您需要网站访问者直接访问远程 MySQL?连接到远程 MySQL 服务、您的 PHP 应用程序代码或访问者的客户端有什么作用?如果是您的应用程序代码,则连接的是 Web 服务器的 IP 地址,可以可靠地限制。 但仍然是insecure without SSL,您可以在机器之间使用 SSH 隧道。 MySQL 可以编译为 SSL:dev.mysql.com/doc/refman/5.0/en/ssl-connections.html 我只希望我的 Web 服务器与远程 MySQL 服务器数据库交互。例如,假设我的服务器位于 198.103.24.15。 MySQL 服务器在 Windows Server 2008 上运行。如何打开端口 3306 并将其限制在我的网站上? 【参考方案1】:

就我个人而言,我发现在安全性和性能之间实现良好平衡的最佳方法是打开端口 3306,但设置防火墙规则来限制对我的 Web 服务器 IP 地址的访问。

您可以使用 IP 表通过如下规则过滤网络流量:

iptables -I INPUT -p tcp -s [WEBSERVER IP ADDRESS] --dport 3306 -j ACCEPT

您可以将它与安全地连接到 mysql 服务器结合起来,如果您希望在从 MySQL 服务器到 Web 服务器的过程中加密数据。请参阅这篇 *** 文章:Securing remote mysql connection

【讨论】:

我只希望我的 Web 服务器与远程 MySQL 服务器数据库交互。例如,假设我的服务器位于 198.103.24.15。 MySQL 服务器在 Windows Server 2008 上运行。如何打开端口 3306 并将其限制在我的网站上? 是的,这正是你所做的。至于 Windows 防火墙设置,它不会是 iptables,所以你需要研究如何设置。

以上是关于使用 PHP 连接到远程 MySQL 数据库的网页的主要内容,如果未能解决你的问题,请参考以下文章

PHP当中如何使用Wampserver连接到Mysql数据库以及怎样使用

无法使用 PHP 页面连接到 MySQL

Android 连接到远程 mysql 数据库 JDBC Vs JSON

如何在Mac的MAMP中允许远程连接到mysql数据库

无法从 Mac lion 连接到远程 mysql

使用 PHP 从 Swift 连接到在线数据库 (mySQL)。 (XCODE)