【问题标题】:PHP Connection Refused (HY000/2002) on LocalHostLocalHost 上的 PHP 连接被拒绝 (HY000/2002)
【发布时间】:2018-04-30 18:16:04
【问题描述】:

在这里和其他各种互联网论坛上阅读了许多类似的主题后,我的 PHP 代码仍然存在问题,这让我陷入了循环......这是error_log 文件的错误正在给我:

[30-Apr-2018 17:05:11 UTC] PHP Warning:  mysqli::mysqli(): (HY000/2002): Connection refused in /home/nicktric/public_html/index.php on line 12

这是我的代码的当前状态,非常简单:

<!DOCTYPE html>
<html>
<body>

<?php
$servername = "127.0.0.1";
$username = "nicktric_admin";
$password = "########";
$dbname = "nicktric_routes";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT name, server, status FROM routeStatus";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<br> id: ". $row["name"]. " - Name: ". $row["server"]. " " . $row["status"] . "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
?> 

</body>
</html>

到目前为止,我已经尝试了以下方法:

  • localhost127.0.0.1 和服务器共享 IP 之间更改主机名
  • 修改 PHP 套接字无济于事,因为我无法在 CPanel 上找到正确的配置

另外,需要注意的是:

  • 我正在通过 CPanel 网络托管进行此操作
  • 数据库名称、用户名和密码均正确并链接到数据库(密码为安全起见)

【问题讨论】:

  • 首先,我在cpanel上使用php访问本地mysql实例,我使用localhost,效果很好。 (老实说,我认为您不需要以任何方式更改配置 - 所有这些都是 cpanel 中的核心功能。)其次,您指定的用户是否肯定有权访问此特定数据库?

标签: php mysql localhost web-hosting


【解决方案1】:

检查 mysqld 是否正在运行,并且您的防火墙是否允许 mysql 数据库通过。

编辑您的 php.ini 文件并确保在 Windows 上启用 extension=php_mysqli.dll 或在 Linux 上启用 extension=php_mysqli.so。

在这里尝试答案:Test Mysql

  • 您必须检查两个设置才能使其正常工作(假设 你当然已经安装了 MySQL 服务器):
  • 检查 PHP 配置中 mysql.default_socket 的值。
  • 检查 MySQL 配置文件中的 socket 值 [mysqld] 标题。
  • 这些值必须相同;如果不是,请将其更改为 匹配另一个并重新启动相应的服务。

【讨论】:

    【解决方案2】:
    In /etc/mysql/my.cnf you should see this near the top of the file:
    
    [client]
    port          = 3306
    socket        = /var/run/mysqld/mysqld.sock
    Change socket to the location of your MemSQL socket file. By default, this is /var/lib/memsql/data/memsql.sock.
    
    hope that will work !
    

    【讨论】:

    • 知道我可以在 Cpanel 实例中的哪里找到它吗?我在 CPanel 编辑器中找到了 .ini,但还没有找到 .cnf...
    • 没有内部 MySQL 命令来跟踪这个,它有点太抽象了。该文件可能位于 5 个(或更多?)位置,并且它们都是有效的,因为它们加载级联。 /etc/my.cnf /etc/mysql/my.cnf $MYSQL_HOME/my.cnf [datadir]/my.cnf ~/.my.cnf 这些是 MySQL 查看的默认位置。如果它找到多个,它将​​加载它们中的每一个,并且值会相互覆盖(我认为按照列出的顺序)。此外,--defaults-file 参数可以覆盖整个内容,所以......但是由于它非常混乱,它很有可能只是在 /etc/my.cnf 中。
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2017-07-12
    • 2021-07-10
    • 2015-03-10
    • 2020-04-24
    • 2015-06-06
    相关资源
    最近更新 更多