Отказано в соединении PHP (HY000 / 2002) на LocalHost - PullRequest
0 голосов
/ 30 апреля 2018

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

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018
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 голосов
/ 30 апреля 2018

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

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

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

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