本地主机上的PHP连接被拒绝(HY000/2002)

本地主机上的PHP连接被拒绝(HY000/2002),php,mysql,localhost,web-hosting,Php,Mysql,Localhost,Web Hosting,在这里和其他各种互联网论坛上阅读了许多类似的主题之后,我仍然对我的PHP代码有一个问题,这让我陷入了一个循环。。。下面是错误日志文件给我的错误: [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 ht

在这里和其他各种互联网论坛上阅读了许多类似的主题之后,我仍然对我的PHP代码有一个问题,这让我陷入了一个循环。。。下面是
错误日志
文件给我的错误:

[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>

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

  • localhost
    127.0.0.1
    和服务器共享IP之间更改主机名
  • 修改PHP套接字无效,因为我无法在CPanel上找到正确的配置
此外,需要注意的是:

  • 我是通过CPanel网络托管来做这件事的
  • 数据库名称、用户名和密码都是正确的,并且链接到数据库(为安全起见包含密码)

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

编辑php.ini文件,确保在Windows上启用了extension=php\u mysqli.dll,或在Linux上启用了extension=php\u mysqli.so

请尝试以下答案:

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

首先,我在cpanel上使用php访问本地mysql实例,并使用localhost,这很好。(老实说,我认为您不需要以任何方式更改配置—所有这些都是cpanel的核心功能。)其次,您指定的用户是否确实有权访问此特定数据库?您知道在cpanel实例中我会在哪里找到这一点吗?我在CPanel编辑器中找到了.ini,但还没有找到.cnf…没有内部MySQL命令来跟踪它,它有点太抽象了。文件可能位于5个(或更多?)位置,它们都是有效的,因为它们加载级联/etc/my.cnf/etc/mysql/my.cnf$mysql\u HOME/my.cnf[datadir]/my.cnf~/.my.cnf这些是mysql查看的默认位置。如果它找到多个,它将加载它们中的每一个&值将相互覆盖(我认为是按列出的顺序)。此外,--defaults file参数可以覆盖整个过程,因此。。。但多亏它如此混乱,它很有可能只是在/etc/my.cnf中。
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 !