0

我一直在玩这个代码,以便能够从外部网络连接:

如果只有我使用相同的网络,下面的代码就可以完美运行:

<?php

define ('DB_USER', 'test_user');
define ('DB_PASSWORD', 'test_password');
define ('DB_HOST', '192.168.x.xxx:3306');
define ('DB_NAME', 'testing'); 
$dbc=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
    OR die ('Could not connect to MySQL: '.mysql_error()); @mysql_select_db (DB_NAME) 
    OR die ('Could not select the database" '.mysql_error());;

?>

现在我在路由器设置中找到了 IP 地址 79.xxx.xxx.xx,但是当我尝试替换 192.168.x.xxx ip 时,它显示以下错误:

Could not connect to MySQL: No connection could be made because the target machine actively refused it.

请注意,我已经编辑了 phpmyadmin conf 文件并替换了以下内容:

<Directory "c:/wamp/apps/phpmyadmin3.5.1/">
Options Indexes FollowSymLinks MultiViews

AllowOverride all
Order Allow,Deny
Allow from all

</Directory>

我应该怎么做才能让它工作?请帮忙谢谢

4

3 回答 3

1

有两种选择:

A)您可以允许从任何地方访问所需的数据库:

User | Host
———————————
Any  | %

这被广泛认为是不安全的,因为现在任何人都可以尝试从任何地方暴力访问您的数据库。

另请参阅:如何为用户授予对 mysql 服务器的远程访问权限?

B)您应该在安装了 MySQL 数据库的服务器上安装 phpMyAdmin,并将 vHost 设置中对 phpMyAdmin 的访问限制为localhost. 您仍然可以使用 SSH 隧道从任何地方访问此站点。

于 2013-11-12T13:29:14.580 回答
0

您可以从网络外部访问 pma,但您必须:

  • 使用公共 IP (79.xxx.xxx.xx)
  • 从您的路由器设置 expl 转发一个端口(79.xxx.xxx.xx:8888 到 192.xxx.xxx.xxx:3306)

请注意,如果您没有静态 IP,则每次公共 IP 更改时都必须更改主机(或使用动态 dns 服务,如 dyndns)

于 2013-11-12T13:37:04.753 回答
-1

您不能通过 ip 访问不同网络的本地机器,并且您从路由器获得的 ip 可能是您的 isp,因此要访问这样的机器必须具有静态 ip,以便您可以从任何网络访问该机器

于 2013-11-12T13:28:20.107 回答