是否可以使用外部MySQL数据库运行本地PHP脚本?

是否可以使用外部MySQL数据库运行本地PHP脚本?,php,mysql,Php,Mysql,我在本地机器上有XAMPP,能够毫无问题地运行PHP脚本,并完美地连接到本地主机mysql DB 我对使用本地脚本从实时MySQL数据库(与Media Temple在线托管)中提取数据感兴趣。出于可能的安全目的,我们不希望将代码的某些方面发布到web目录。这可能吗 注意:要使用桌面软件(如Navicat)本地访问此数据库,当然需要使用SSH隧道。我们不允许直接从根目录访问数据库。是的,连接时只需指定远程MySQL实例的主机名和端口。是的,连接时只需指定远程MySQL实例的主机名和端口。当然,您可

我在本地机器上有XAMPP,能够毫无问题地运行PHP脚本,并完美地连接到本地主机mysql DB

我对使用本地脚本从实时MySQL数据库(与Media Temple在线托管)中提取数据感兴趣。出于可能的安全目的,我们不希望将代码的某些方面发布到web目录。这可能吗


注意:要使用桌面软件(如Navicat)本地访问此数据库,当然需要使用SSH隧道。我们不允许直接从根目录访问数据库。

是的,连接时只需指定远程MySQL实例的主机名和端口。

是的,连接时只需指定远程MySQL实例的主机名和端口。

当然,您可以使用MySQL\u connect()函数指定主机、端口、凭据等。请参阅:了解更多信息。

当然,您可以使用mysql\u connect()函数指定主机、端口、凭据等。请参阅:了解更多信息。

是的,这是可能的

您需要在托管数据库(即Media Temple)上设置适当的访问权限

请参阅MYSQL用户手册中的这段代码(http://dev.mysql.com/doc/refman/5.5/en/adding-users.html)

警告授予所有权限可能会造成安全隐患

在上面的示例中,您可以将“localhost”替换为运行脚本的PC的IP地址(即XAMPP)。请记住,如果没有静态IP地址,则可能需要指定通配符。这可能很危险,但如果必须这样做,诀窍是使用%符号

因此“localhost”将更改为“%”。为了在这种情况下获得额外的安全性,您可能应该更改用户获得的priv,如果可能的话,将其设置为只读

最后,在mysql_connect()函数中指定详细信息。主机、数据库名称、用户名和密码。 是的,这是可能的

您需要在托管数据库(即Media Temple)上设置适当的访问权限

请参阅MYSQL用户手册中的这段代码(http://dev.mysql.com/doc/refman/5.5/en/adding-users.html)

警告授予所有权限可能会造成安全隐患

在上面的示例中,您可以将“localhost”替换为运行脚本的PC的IP地址(即XAMPP)。请记住,如果没有静态IP地址,则可能需要指定通配符。这可能很危险,但如果必须这样做,诀窍是使用%符号

因此“localhost”将更改为“%”。为了在这种情况下获得额外的安全性,您可能应该更改用户获得的priv,如果可能的话,将其设置为只读

最后,在mysql_connect()函数中指定详细信息。主机、数据库名称、用户名和密码。

您可以通过网络连接到mysql,并且可以指定要连接到远程服务器的主机名和端口。但是,出于安全原因,MySQL通常配置为不接受来自本地网络外部的连接。我不建议打开你的服务器连接到Internet。。。如果您这样做了,您至少应该通过SSL加密您的连接


老实说,我建议您将管理工具部署到服务器上,并确保它们使用良好的身份验证系统和HTTPS。向世界公开mysql服务器以避免服务器上的安全问题感觉有点像把门关上,因为您担心有人会撬开锁。

您可以通过网络连接到mysql,并且可以指定要连接到远程服务器的主机名和端口。但是,出于安全原因,MySQL通常配置为不接受来自本地网络外部的连接。我不建议打开你的服务器连接到Internet。。。如果您这样做了,您至少应该通过SSL加密您的连接


老实说,我建议您将管理工具部署到服务器上,并确保它们使用良好的身份验证系统和HTTPS。向世界公开mysql服务器以避免服务器上的安全问题感觉有点像把门关上,因为您担心有人会撬开锁。

如果您必须通过SSH隧道,这可能会很困难。前面有一些关于这个主题的问题。您可以在PHP中设置一个SSH隧道,该隧道可以承载连接。试着开始


注意,如果您为每个DB请求建立一个SSH隧道,您将招致大量开销。保持SSH隧道尽可能持久是很重要的,但即使如此,也可能会有一些明显的开销。

如果必须通过SSH隧道,这可能会很困难。前面有一些关于这个主题的问题。您可以在PHP中设置一个SSH隧道,该隧道可以承载连接。试着开始


注意,如果您为每个DB请求建立一个SSH隧道,您将招致大量开销。尽可能保持SSH隧道的持久性是很重要的,但即使这样,也可能会有一些明显的开销。

谢谢大家的回答-基于可能的开销和它提供的安全线程,我想我会推迟推进这类活动。我可能会提出一个不同的问题,这是真的“我通过互联网获取注册信息,其中一些是我不希望存储在非源代码mySQL数据库中的私人信息。然而,我确实希望在网上使用这些信息,让我的会员能够更新他们的信息,让我们的客户服务代理也能够自己更新这些信息。我该如何解决这个问题呢?谢谢大家的回答-基于可能的开销和它提供的安全线程,我想我会推迟推进这类活动。我可以开一家不同的银行
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost';