Ошибка веб-службы: ошибка: SQLSTATE[HY000] [2002] Connection refused


<?php

$usu = $_REQUEST['usu'];
$pas = $_REQUEST['pas'];

try{
    // establecemos la conexion con PDO
    $conexion = new PDO("mysql:host=pagina.000webhostapp.com;port=3306;dbname=id554244_basededatos", "id453244_usuario", "contraseña");

    $conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // establecemos el juego de caracteres utf8
    $conexion->exec("SET CHARACTER SET utf8");

    // consulta para obtener el alumno con dicho usuario y contraseña
    $consulta_sql = "SELECT * FROM alumnos WHERE codAlu=? AND pasUsu=?";

    // preparamos la consulta
    $resultado = $conexion->prepare($consulta_sql);

    // ejecutamos la consulta con los aparametros del array, entrecomillado porque son varchar
    $resultado->execute(array("$usu", "$pas"));// guardamos en resultado la tabla virtual que devele la consulta

    $datos = array();

    foreach($resultado as $row){
        $datos[] = $row;
    }

    echo json_encode($datos);

}catch(Exception $e){
    die("Error: " . $e->GetMessage());
}finally{// esto se ejecuta haya o no error
    $conexion = null;
}

?>

я не понимаю, почему эта ошибка выходит, так как параметры PDO верны (я не уверен в порту, но я уже пробовал несколько, и он все еще не работает).

Author: Mariano, 2016-10-17

3 answers

По формату URL, к которому вы подключаетесь, база данных mysql, похоже, размещена на другом сервере, чем файлы PHP:

host=pagina.000webhostapp.com;

Вы должны выяснить у хостинг-провайдера, включен ли IP-адрес, с которого вы пытаетесь подключиться, для подключения удаленного MySQL к серверу, на котором размещена база данных.

Если вы работаете с localhost, есть большая вероятность, что вы тоже не сможете подключиться.

 1
Author: Alfonso, 2016-10-17 13:31:22

Ответ, который вы получаете, указывает на то, что вы не получаете абсолютно никакого ответа, вы можете исключить проблемы аутентификации. Убедитесь, что вы подключаетесь к соответствующему хосту и Порту. Если это так, проверьте брандмауэр хоста и / или компьютера, с которого вы хотите подключиться. Очень важно также то, что сказал вам Альфонсо, убедитесь, что конфигурация mysql хоста допускает внешние соединения.

Хороший способ помочь вам диагностировать проблему-попробовать подключение вручную с некоторым клиентом mysql программного обеспечения, например Heidisql

Http://www.heidisql.com/

Загрузите его и попробуйте подключиться к той же базе данных, если вы не получите его, это фактически означает, что адрес хоста, порт или конфигурация mysql должны быть проверены.

Приветствие

 2
Author: manuelbcd, 2016-10-19 07:31:36

Если сервер, на котором находится база данных, тот же, где находится код, рекомендуется использовать "localhost" ... эта ошибка исчезла со мной, потому что служба хостинга никогда не уведомляла, когда было изменение IP; с другой стороны, было бы неплохо, если бы вы получили IP-адрес URL-адреса, который вы указываете как хост

 -1
Author: Alfredo Morales, 2020-02-13 17:56:47