Hoy, eliminé y reinstalé la última versión de lampp para pasar a php 5.30, y de repente una aplicación muy simple no puede conectarse a la base de datos mysql. Estoy usando DOP conectarse y recibir el siguiente error:Error al crear una conexión a PDO en PHP
Warning: PDO::__construct() [pdo.--construct]: [2002] Invalid argument (trying to connect
via unix://) in /home/raistlin/www/todoapp/home.php on line 9
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
Invalid argument' in /home/raistlin/www/todoapp/home.php:9 Stack trace: #0
/home/raistlin/www/todoapp/home.php(9): PDO->__construct('mysql:host=loca...', 'USER',
'PASSWORD') #1 {main} thrown in /home/raistlin/www/todoapp/home.php on line 9
yo no estoy poniendo el error en el momento, por el bien de depurarlo.
El código siguiente es suficiente para reproducir el problema en mi sistema:
<?php
$DBACCESS = array(
"connstring"=>"mysql:host=localhost;dbname=todoapp",
"host"=>"localhost",
"user"=>"user",
"password"=>"password",
"todoapp"=>"todoapp"
);
echo implode('<br \>',$DBACCESS);
$dbh = new PDO($DBACCESS['connstring'],$DBACCESS['user'],$DBACCESS['password']);
$dbh = null;
?>
Buscando por Internet, he encontrado una o dos personas con el mismo problema, pero ninguno de ellos ha recibido una respuesta, mucho menos un trabajo. ¿Alguien sabe lo que está pasando? ¿Hay algo que extrañé en la configuración? ¿Qué debo hacer para solucionarlo?
No estoy seguro de por qué MySQL algunas veces toma "localhost" para significar "Voy a usar un socket Unix" – TML
Perfecto. El problema se resolvió con la opción 2, aunque con la instalación de xampp lampp, necesité usar /opt/lampp/var/mysql/mysql.sock. – krdluzni
Claro. Me alegro de que hayas podido encontrar el zócalo. Acabo de lanzar un ejemplo y recé para que lo encontraras. :) – TML