Pregunta:
Fecha: 08-07-2017 06:59:53
(En Español)
Les comento que estaba trabajando con esta conexión sin ningun problema, a continuacion el código:
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:
Gracias. Votos: 0 - Respuestas: 16 - Vistas: 36 Compartir en: Google Facebook Twitter LinkedIn Link
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. 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 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: 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: 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
