【问题标题】:Access denied for user ''@'localhost' to database in php用户 ''@'localhost' 拒绝访问 php 中的数据库
【发布时间】:2015-03-06 07:20:06
【问题描述】:

我正在尝试查看来自外部 MySQL 服务器的所有表。我有它的 IP 地址、用户名、密码来连接和查询他们的数据库。但是当我尝试查询以显示所有表时,我收到这样的错误消息,

Warning: mysql_connect(): A connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed because connected host has failed
to respond. in G:\XAMPP\htdocs\test.php on line 2
Failed to connect to MySQL: Access denied for user ''@'localhost' to database 'thedb'

这是我的代码,

<?php
$conn = mysql_connect("202.82.31.11", "abc_user", "abc123");
$select = mysql_select_db("thedb");

if(!$conn || !$select){
 echo "Failed to connect to MySQL: " . mysql_error();
}

$sql = "SHOW TABLES";
$result=mysql_query($sql);
echo $result;
?>

我被告知始终从真实 IP 52.247.181.57 连接。那么这是什么意思呢?我必须从我的真实 IP 连接吗?如果是这样,我该怎么做?我需要知道程序。您的帮助将不胜感激。肿瘤坏死因子。仅供参考,这里的 IP 都是虚拟/随机 IP,例如目的。

【问题讨论】:

  • resource mysql_connect($server,... $server是MYSQL-Server的ip-address,mysql服务器访问可以不同对于 localhost 和 IP 连接...有关示例,请参见 mysql.com,顺便说一句,使用 mysqli 或 PDO 而不是 mysql_* 函数
  • 查看该 IP 地址是否链接到主机文件中的任何 url,然后尝试在您的 PHP 代码中使用它。
  • because the connected party did not properly respond - 看起来您的数据包被丢弃在沿途某处。由于您已获得有关原始地址的说明,因此服务器提供商很可能会拒绝所有数据包,但来自特定(范围)的 IP 地址,即防火墙中的例外规则。
  • 有点离题,但很重要:停止使用mysql_*函数:stackoverflow.com/questions/12859942/…
  • 到目前为止看到答案,我的电脑没有特权。好的,让我看看我是否可以在目标电脑上查询。 Tnx 感谢您的支持。

标签: php mysql localhost


【解决方案1】:

首先继续http://whatismyipaddress.com/ 并检查您的IP。如果它不是 52.247.181.57 则您无权访问 mySQL 服务器。您可以通过 cPanel / Remote MySQL 请求访问服务器管理员并给他您的 IP。但是,如果您没有个人公共 IP,我不推荐此版本。

【讨论】:

    【解决方案2】:

    在外部服务器上,您需要允许(白名单)您的 IP 地址。如果您在远程服务器上有 Cpanel,请转到远程 MySQL 并允许您的 IP。 此外,在远程服务器上,端口 3306 必须允许传入连接。

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 1970-01-01
      • 2015-05-28
      • 2018-06-24
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多