Nueva pregunta

Pregunta:

Fecha: 08-07-2017 06:59:53 (En Español)

Error de conexión con PDO: ErrorSQLSTATE[HY000] [2002] No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión[Resuelta]

Amigos de la comunidad tengo este problema.

Les comento que estaba trabajando con esta conexión sin ningun problema, a continuacion el código:

<?php 
		$host = "localhost";
		$user = "root";
		$pass = "1234567";
		$db = "curso_php";

		
		$conn = mysqli_connect($host,$user,$pass);

		echo "conexion exitosa";

		
		if(mysqli_connect_errno()){

			echo "fallo al conectar a la base de datos";

			exit();
		}

		mysqli_select_db($conn, $db) or die("no se encuentra la base de datos");

		
		
		mysqli_close($conn);

	 ?>


pero al querer trabajar con el constructor PDO como se muestra a continuacion es donde me sale el error mencionado en la pregunta, aún no encuentro el error al querer trabajar con PDO, se agradece la ayuda.

Aquí el código que falla con PDO:
<?php	
	$username = 'root';
	$pass = '1234567';

		try{

		$conn = new PDO('mysql:host=127.0.0.1; dbname=curso_php', $username, $pass);//constructor

		echo 'Conexion OK';

		}catch(Exception $e){

			die('Error' . $e->GetMessage());

		}finally{

			$conn = null;

		}

	 ?>


Gracias.
Etiquetas: Base de Datos - MySQL - PHP - PHP MySQLi - PHP PDO - Pregunta Votos: 0 - Respuestas: 16 - Vistas: 36 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 08-07-2017 10:00:54 Hola

    Prueba con cambiar la IP por localhost
    En:
    $conn = new PDO('mysql:host=127.0.0.1; dbname=curso_php', $username, $pass)
    

    Por:

    $conn = new PDO('mysql:host=localhost; dbname=curso_php', $username, $pass)
    

    Y nos cuentas

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 08-07-2017 20:42:47 ocurre el mismo error :/   Votos: 0 - Link respuesta
     
  • Fecha: 08-07-2017 22:02:20 Ahora prueba con lo siguiente:

    try {
                $conn  = new PDO("mysql:host=localhost;dbname=curso_php",  $username, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
            } catch (PDOException $e) {
                echo 'Error de conexión: ' . $e->getMessage();
                exit;
            }


    Prueba con localhost y con 127.0.0.1

    Que servidor estas utilizando?

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 09-07-2017 07:44:10 Servidor web apache   Votos: 0 - Link respuesta
     
  • Fecha: 10-07-2017 09:41:32 Hola intenta con ésta, es la que tengo y funciona bien

    <?php
    try {
       $pdo = new PDO('mysql:host=' . $_MYSQL_HOST . ';dbname=' . $_MYSQL_DB .';charset=utf8', $_MYSQL_USER, $_MYSQL_PASS);
    $_MYSQL_USER, $_MYSQL_PASS);
    
     $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    
    } catch (PDOException  $e) {
        echo '¡Error al conectar con la base de datos de la intranet!<br> ' . $e -> getMessage();
        die();
    }
    
    ?>
    
    



    Ya solo agregale valores a a las variables de conexion
      Votos: 1 - Link respuesta
     
  • Fecha: 10-07-2017 10:28:04 En php.ini, tienes activado:
    extension=php_pdo.dll
    extension=php_pdo_mysql_libmysql.dll
    


    Y en tu conector debería estar así:
    <?php
    $dsn = 'mysql:dbname=curso_php;host=localhost';
    $cuenta="root";
    $contrasena="1234567";
    
    try {
        $consql = new PDO($dsn, $cuenta, $contrasena);
        $consql->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    	$consql->setAttribute( PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
    
    } catch (PDOException $e) {
        print "(SQL) : Error al Conectar : " . $e->getMessage() . "<br/>";
        die();
    }
    ?>
    


    Espero te sirva... nos cuentas...
      Votos: 1 - Link respuesta
     
  • Fecha: 10-07-2017 12:54:52 el error perdura sin solución , creo que tiene que ver el error con los puertos que impide la comunicacion :/   Votos: 0 - Link respuesta
     
  • Fecha: 10-07-2017 18:01:18 Hola
    Para verificar el puerto de mysql, mira este post

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 11-07-2017 03:50:38 Hola Jose, leyendo tu caso y todoas las excelentes respuestas que has obtenido (+1 para todos) debo asumir que la permisa de "con mysqli la conexión es exitosa pero con PDO no" no es del todo correcta, ya que si conectas con mysqli dudo que tu problema este en el puerto, credenciales, nombre del servidor, etc... y la forma correcta de utilizar PDO ya te la han indicado...

    Vamos por partes, veamos de confirmar la correcta conexión con mysqli y luego avanzamos desde ahí hacia PDO. Aquí te dejo un código de ejemplo adaptado con tus credenciales para que pruebes:
    <?php
    $host = "localhost";
    $user = "root";
    $pass = "1234567";
    $db = "curso_php";
    
    $enlace = mysqli_connect($host, $user, $pass, $db);
    
    if (!$enlace) {
        echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
        echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
        echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
    
    echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
    echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;
    
    mysqli_close($enlace);
    ?>
    


    Ejecuta el código y luego nos cuentas lo más detallado posible tu experiencia, resultados, errores obtenidos, etc... (no me sirve una respuesta del estilo "ocurre el mismo error").

    Espero que podamos dar con la solución.

    Saludos a todos y buen código!
      Votos: 1 - Link respuesta
     
  • Fecha: 11-07-2017 04:42:47 José buen día, me sorprende aún continua con el error, favor me puede enviar lo siguiente a mi correo?

    El programa Conector, respaldo Base Datos y el php.ini... mi correo:

    carlosarmijo.severino@gmail.com , que versión de de php estas usando??? gracias...

    Que estés muy bien, quedo a la espera, quiero resolver y que la solucion sirva para todos en la comunidad...
      Votos: 2 - Link respuesta
     
  • Fecha: 12-07-2017 11:51:35 José buenas tardes, como te fue???   Votos: 0 - Link respuesta
     
  • Fecha: 16-07-2017 12:16:14 solución del problema cambie los valores del puerto en my.ini y php.ini que los tenia en 3307 y lo cambie a 3306 :)   Votos: 0 - Link respuesta
     
  • Fecha: 25-04-2020 18:36:46 Hola José,
    Consulta tambien te salió este mensaje?
    Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table

    Ahora en el My.ini y php.ini, solo cambiaste el puertos?
      Votos: 0 - Link respuesta
     
  • Fecha: 25-08-2020 12:59:32 gracias, tuve el mismo problema y eran los puertos en XAMPP. Los había cambiado a 3307 también. los volví a 3306 y funciono. Los cambié antes por el virtualizador que me generaba un error con el puerto. Abrazo grande   Votos: 1 - Link respuesta
     
  • Fecha: 01-11-2021 15:32:42 Por mi parte logré solucionarlo iniciando el Servidor de Apache y MySQL que olvidé encender xD xD   Votos: 0 - Link respuesta
     
  • Fecha: 05-08-2023 01:34:48 hola prueba con este video yo tenia el mismo error sin necesidad de cambiar el puerto

    error mysql


      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com