从不运行MySQL的Web服务器连接到外部MySQL DB

时间:2010-04-13 19:33:20

标签: php mysql

虽然我多年来一直在使用MySQL,但这是我第一次遇到这个非常新手的问题。由于客户端的需求,我必须在没有运行MySQL的IIS服务器上托管他们的网站文件(PHP)(相反,他们运行的是MSSQL)。但是,我使用位于外部主机(Rackspace Cloud)上的MySQL数据库开发了该站点。显然,我的mysql_connect函数现在正在轰炸,因为MySQL没有在localhost上运行。

问题:如果localhost没有运行MySQL,是否可以访问外部MySQL数据库?

为新手问题道歉,并提前多多感谢。

*为了澄清,我知道如何连接到远程MySQL服务器,但事实是我的IIS Web服务器没有运行任何形式的MySQL(服务器和客户端)都没有给我带来麻烦。换句话说,phpinfo()不返回任何关于MySQL的东西。 *

4 个答案:

答案 0 :(得分:3)

是的,你可以使用与Apache + PHP不在同一台机器上的MySQL数据库。

基本上,我会通过网络连接从PHP连接到MySQL - 基于TCP,我想;这意味着:

  • MySQL必须配置为侦听并接受网络接口上的连接
    • 这意味着配置MySQL来做到这一点
    • 并且给予MySQL用户所需的权限,因此他可以从远程服务器连接
  • PHP必须能够连接到托管MySQL的服务器。

请注意,在远离的服务器上使用MySQL可能不适合性能:每个SQL查询都必须通过网络,这可能需要一些时间......

答案 1 :(得分:0)

如果phpinfo没有返回关于MySQL的任何内容,你需要为PHP安装MySQL插件,最简单的方法就是将PHP升级到最新版本。如果没有,则需要.DLL文件。

http://www.php.net/manual/en/mysql.installation.php

答案 2 :(得分:0)

您需要安装mysql扩展。此链接应该有所帮助:http://php.net/manual/en/install.windows.extensions.php

答案 3 :(得分:0)

MySQL服务器与PHP本身无关。 PHP中的“mysql支持”意味着它是用(或加载了模块)编译实现MySQL客户端接口的。对于Windows,它是'mysql.dll',在Unix-ish系统上它是'mysql.so'。一旦加载了,那么各种MySQL接口(mysql_xxx(),mysqli_xxx(),PDO,MDB2等)将能够在任何地方访问任何MySQL服务器,只要你有正确的连接字符串。