Отказано в соединении PHP (HY000 / 2002) на LocalHost

0

После прочтения нескольких подобных тем здесь и на других различных интернет-форумах у меня все еще возникает проблема с моим 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>

Я пробовал следующее:

  • Изменение имени хоста между localhost, 127.0.0.1 и общим IP-адресом сервера
  • Изменение сокета PHP бесполезно, поскольку я не смог найти правильную конфигурацию для этого на CPanel

Кроме того, необходимо отметить следующие вещи:

  • Я делаю это с веб-хостинга CPanel
  • Имя базы данных, имя пользователя и пароль правильны и связаны с базой данных (пароль, защищенный)
  • 0
    Во-первых, я использую php на cpanel для доступа к локальному экземпляру mysql, и я использую localhost, который работает нормально. (И я, честно говоря, не думаю, что вам нужно каким-либо образом изменять конфигурацию - все это является основной функциональностью в cpanel.) Во-вторых, есть ли у указанного вами пользователя определенно доступ к этой конкретной базе данных?
Теги:
web-hosting
localhost

2 ответа

0
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 !
  • 0
    Любая идея, где я мог бы найти это в экземпляре Cpanel? Я нашел .ini в редакторе CPanel для него, но пока не .cnf ...
  • 0
    Нет внутренней команды MySQL для отслеживания этого, она слишком абстрактна. Файл может находиться в 5 (или более?) Местах, и все они будут действительными, потому что они загружаются каскадно. /etc/my.cnf /etc/mysql/my.cnf $ MYSQL_HOME / my.cnf [datadir] /my.cnf ~ / .my.cnf Это расположение по умолчанию, на которое смотрит MySQL. Если он находит более одного, он загружает каждое из них и значения переопределяют друг друга (я думаю, в указанном порядке). Кроме того, параметр --defaults-file может переопределить все это, так что ... Но из-за того, что он настолько запутанный, есть хороший шанс, что он находится только в /etc/my.cnf.
0

проверьте, работает ли mysqld и что ваш брандмауэр разрешает базу данных mysql.

Измените файл php.ini и убедитесь, что расширение расширения = php_mysqli.dll включено в Windows или extension = php_mysqli.so в Linux.

Попробуйте ответить здесь: Test Mysql

  • Есть две настройки, которые вы должны проверить, чтобы это работало (при условии, что вы, конечно же, сервер MySQL):
  • Проверьте значение mysql.default_socket в вашей конфигурации PHP.
  • Проверьте значение сокета в файле конфигурации MySQL под заголовком [mysqld].
  • Эти значения должны быть одинаковыми; если это не так, измените его, чтобы соответствовать другому, и перезапустите соответствующую службу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню