such sqlstate refused pdoexception hy000 error php mysql

php - refused - sqlstate[hy000][2002] no such file or directory magento



SQLSTATE[HY000][2002] No existe tal archivo o directorio (7)

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de ejecutar un proyecto de laravel en OS X. Instalé MySql con homebrew. Intenté buscar en Google por qué me sale este error:

SQLSTATE[HY000] [2002] No such file or directory

cuando trato de hacer

php artisan migrate

Y la mayoría de las respuestas que veo dicen php y MySql no pueden comunicarse entre sí. He estado tratando de ver dónde me equivoqué, ya que creo que seguí las publicaciones anteriores al respecto, y todavía no funciona. He creado una página que simplemente hace esto:

<?php phpinfo(); ?>

Y veo estos tipos de cosas: en el área Configurar, veo:

''--with-mysql-sock=/tmp/mysql.sock'' ''--with-mysqli=mysqlnd'' ''--with-mysql=mysqlnd'' ''--with-pdo-mysql=mysqlnd'' ''--enable-pcntl'' ''--enable-zend-signals'' ''--enable-dtrace''

archivo de configuración cargado:

/usr/local/etc/php/5.4/php.ini

Si ls /tmp , veo mysql.sock.

En ese archivo php.ini, puse estas líneas: pdo_mysql.default_socket = / tmp / mysql.sock mysql.default_socket = /tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock

Y luego en /usr/local/Cellar/mysql/5.6.16/my.cnf, agregué la siguiente línea:

socket = /tmp/mysql.sock

HAGO reinicie Apache, y compruebe que mysql se está ejecutando. No he visto ningún otro consejo además de la conexión php y mysql. Creo que hay dos versiones de php en mi sistema porque cuando instalé mcrypt o algo más que no puedo recordar, instalé otra versión de php. Pero cuando miro la salida de phpinfo, estoy editando el archivo php.ini apropiado. No sabía si hay otra pieza que me falta. ¿Alguna idea? Gracias



Encontré PHP en CentOS 6 construido con mysql.default_socket=/var/lib/mysql/mysql.sock pero por alguna razón pdo_mysql.default_socket=/tmp/mysql.sock , que no existe. Construirlo usando --with-mysql-sock=/var/lib/mysql/mysql.sock debería hacer que ambos sean iguales.

Alternativamente, edite php.ini para que contenga:

pdo_mysql.default_socket="/var/lib/mysql/mysql.sock"

... o su ubicación correcta de socket, por supuesto.


Encontró la solución para el usuario de Ampps:
Tuve el mismo problema e hice muchas búsquedas pero no pude resolver el problema hasta que miré mi archivo de configuración de MySql. En mi archivo de configuración, el socket estaba en la línea 21 y la ruta era
"/Applications/AMPPS/var/mysql.sock"

En la aplicación Ampps, haga clic en la pestaña MySql y luego haga clic en el botón de configuración.

También puede encontrar el archivo de configuración en la carpeta "/ Applications / AMPPS / mysql / etc"

Así que simplemente he añadido
''unix_socket'' => ''/Applications/AMPPS/var/mysql.sock'',
a mi database.php en mysql array y funcionó para mí.
Después de la línea de host. He probado con localhost y 127.0.0.1 y ambos trabajaron
Esperemos que esté funcionando para ti también.


Esto me sucedió de la nada, mi aplicación (Laravel) estaba funcionando bien ayer y se eliminó hoy con este error (SQLSTATE [HY000] [2002] No existe tal archivo o directorio).

Después de comprobar que mi archivo de configuración no estaba dañado, me conecté a mi panel de control (estoy usando un VPS) y reinicié el servidor MySQL. Eso hizo el truco, todo está de nuevo en línea.


Lo arreglé de esta manera. Solo agregue una línea. en el proyecto laravel APP => Config => database.php actualiza el
Conexiones => mysql después de la adición estricta debajo de la línea

''unix_socket'' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"

muestra:-

''mysql'' => [ ''driver'' => ''mysql'', ''host'' => env(''DB_HOST'', ''localhost''), ''database'' => env(''DB_DATABASE'', ''forge''), ''username'' => env(''DB_USERNAME'', ''forge''), ''password'' => env(''DB_PASSWORD'', ''''), ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ''strict'' => false, ''unix_socket'' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock" ],


Para los usuarios que buscan una solución en XAMPP (Probado y trabajado en Mac OS X),

Abre el terminal y crea un enlace simbólico:

sudo mkdir /var/mysql cd /var/mysql sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock


Tuve un error similar. Estoy usando MAMP y lo que resolvió mi problema fue:

  1. creando un enlace simbólico en: / var / mysql (cree el directorio si no existe)
  2. cd / var / mysql && sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock