【问题标题】:Connection refused "mysqli_connect(): (HY000/2002): Connection refused in **************************conn.php on line 6 Failed连接被拒绝“mysqli_connect(): (HY000/2002): Connection denied in ****************************** conn.php on line 6 Failed
【发布时间】:2018-03-05 14:36:34
【问题描述】:

大家好,我在将 .php 文件连接到数据库时遇到问题,我尝试了不同的方法,但响应仍然相同。 这是我的代码(更新):

    <?php
$server_name = "localhost";
$mysql_username = "*****";
$mysql_password = "*****";
$db_name = "*****";
$conn = mysqli_connect ($server_name, $mysql_username, $mysql_password, $db_name);
if($conn) {

    echo "Success";

}
else {

    echo "Failed";

}
?>

更新 伙计们,当我连接到 localhost 时一切正常,但我想连接到服务器并能够从不同的 android 设备上传数据。目前我使用的是000webhost.com免费服务,那可能是我没有升级到PRO的关键和问题吗?

【问题讨论】:

  • 看起来很清楚。 PHP 无法连接到该服务器。要么它不存在,要么流量被阻塞,要么其他。首先验证您有一个已启动且可以访问的服务器。没有人可以在这里真正帮助您。
  • 你还需要阅读这个答案:stackoverflow.com/a/549000/1531971
  • 在问这样简单的问题之前先用谷歌搜索一下。
  • 我用谷歌搜索但一无所获。
  • 您确定这些参数中的任何一个都没有错字或错误吗?您可以下载一个工具,例如 XAMPP,它带有一些预构建的示例代码。然后,您可以将您的连接信息与他们的连接信息进行比较。不幸的是,没有人可以帮助解决这个问题,因为参数值是机密的,所以我们无法确定这些值是否有错误或者它们是否是正确的值。

标签: php mysql database phpmyadmin


【解决方案1】:

mysqli_connect 要求参数的顺序为servername, username, password, databasename。您的订单是servername, databasename, username, password

代码应该是:

$conn = mysqli_connect($server_name, $mysql_username, $mysql_password, $db_name);

【讨论】:

    【解决方案2】:

    你的参数顺序错误

    <?php
    $server_name = "*****";
    $db_name = "*****";
    $mysql_username = "*****";
    $mysql_password = "*****";
    $conn = mysqli_connect($server_name, $mysql_username,$mysql_password, $db_name);
    
    if($conn) {
        echo "Success";
    } else {
        echo "Failed";
    } ?>
    

    正确的语法

    mysqli_connect(host,username,password,dbname,port,socket);
    

    参考mysqi_connect

    编辑

    额外提示

    $conn = mysqli_connect("localhost","username","password","db_name");
    

    根据你的服务器设置值。

    编辑 2

    MySQL 需要在 3306 端口上运行,确保正确

    【讨论】:

    • 好的,但是我没有连接到 localhost,那么为什么 /i 需要端口和套接字?
    • 正如您提到的,这两个是可选的,因此更改与它无关。仍在努力连接。
    • 试试我在编辑中添加的代码。 wamp 或 lamp 或 mamp 或 xamp?
    • 我的服务器提供商 000webhost 是否可能因为我使用他们的免费服务而不允许连接到该数据库?
    • 不,即使我使用 000webhost 的免费服务,我也从未遇到过这个问题。等等,我会提供对我有用的连接代码。
    【解决方案3】:

    从 cmets 和排除其他答案中指出的其他可能性来看,很可能是与您的服务提供商的连接问题。

    如果他们支持免费服务,您应该写信给他们说明您的情况。您可能应该将密码更改为一些虚拟密码,以防您与他们共享密码;一些服务提供商要求您分享您的密码以供他们检查,不确定这是否是推荐做法。

    另外,对于测试和开发,最好使用某种本地安装的PHP,例如XAMPP或WAMPP等,以便在开发和测试过程中进行控制。如果某些东西在您的本地安装上而不是在远程安装上有效,则进行开发安装对于隔离和报告此类问题很有用。

    【讨论】:

      【解决方案4】:

      我认为您的问题是您没有实例化该类,通过使其 $conn = new mysqli ($server_name, ..... 另外,您的参数顺序不正确。应该是 server, user ,密码,最后是数据库。

      此外,您应该为此使用 PHP 常量而不是变量,因此 $server_name 应该是 SERVER_NAME。类似地,$mysqli_username、$mysqli_password 和 $db_name 应该更改。并不是说我不会像你那样工作,而是它不合适。

      【讨论】:

        【解决方案5】:

        如果你使用的是 MAMP,mysql 的默认端口是 8889,但 php 期望用于 mysql 的“传统”端口是 3306。

        所以你需要打开MAMP并将MAMP mysql端口改为3306,然后重启mysql服务器。现在连接应该成功了。

        【讨论】:

          猜你喜欢
          • 2019-10-23
          • 2015-03-10
          • 2017-07-08
          • 2020-02-08
          • 1970-01-01
          • 2017-07-12
          • 2021-07-10
          • 2017-05-04
          • 2020-01-22
          相关资源
          最近更新 更多