公共Web服务器尝试使用私有IP在内部网络上查询sql server

时间:2012-04-05 19:06:54

标签: php mysql port

我正在使用php向现有数据库发送查询,以使用基于Web的程序的现有登录凭据来允许访问成员部分页面。我的网络服务器是公共的,有一个公共IP和一个私人IP。但是,我的SQL服务器位于本地局域网上,并且没有公共IP。我对php很新,但我觉得我写得很好。当我在我的电脑上托管内部使用虚拟数据库的网站时,代码工作得非常惊人。我在我的电脑上设置了Apache来运行php代码并设置一个sql数据库用于测试目的。我可以通过在Web浏览器中输入我的192.168.x.x来访问该站点并从办公室中的任何其他计算机登录和退出。

现在该站点被移动到Web服务器,并且我链接到另一台服务器上的活动数据库,它不想工作。我很确定我没有任何编码错误导致这是一个配置问题。我想知道哪些端口应该在哪里打开?并且现有的DB用户是否能够从远程私有IP查询数据库?我意识到这可能是一个初学者的问题,但我现在已经到处寻找了好几天,我的大脑也被炒了。我需要一个基本的清单,列出在建立这种类型的连接时要查找或设置的主要内容。

网站运行于192.168.1.1,公共IP为173.72.173.x
SQL DB在192.168.1.2上运行 我使用'user'和'password'登录sql server上的sql引擎,所以我的配置文件使用:

$server = "192.168.1.2:3306";   // server to connect to.

$database = "myusers";      // the name of the database.

$db_user = "user";      // mysql username to access the database with.

$db_pass = "password";      // mysql password to access the database with.

$table = "dbo.users";       // the table that this script will set up and use.

我将其调用到需要查询任何内容的每个文件中。

这些论文设置正确吗?或者我是否需要在我的sql引擎上创建另一个用户来从远程主机访问数据库?那港口怎么样? sql server已打开3306,但就是这样吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是MySQL(您提到了端口3306),您很可能需要检查MySQL服务器上的my.cnf配置文件,并让它允许远程连接。

只需快速搜索bind-address = 127.0.0.1并通过在其前面放置哈希#进行评论并禁用界面绑定。

由于您没有指定您正在使用的操作系统,我无法确定它是否可能绑定到特定的NIC。亲自尝试一下。