usr unable such sqlstate linked keg hy000 error determine cellar php mysql laravel mmap

such - in brew php line 182 unable to determine linked php



Configuración de Laravel en un error de migración de artesano php de Mac: ningún archivo o directorio (8)

No asumas tu unix_socket que sería diferente de uno a otro, intenta encontrarlo.

En primer lugar, obtenga su ubicación de unix_socket .

$ mysql -uroot -p

Ingrese su contraseña mysql e inicie sesión en su servidor mysql desde la línea de comando.

mysql> show variables like ''%sock%''; +---------------+---------------------------------------+ | Variable_name | Value | +---------------+---------------------------------------+ | socket | /opt/local/var/run/mysql5/mysqld.sock | +---------------+---------------------------------------+

Su unix_soket podría ser diferente.

Luego tienes 2 soluciones para resolver tu problema:

(1) Cambie su config/database.php

''mysql'' => array( ''driver'' => ''mysql'', ''host'' => ''localhost'', ''database'' => ''essays'', ''username'' => ''root'', ''password'' => ''root'', ''unix_socket'' => ''/opt/local/var/run/mysql5/mysqld.sock'', //Your sock got from above ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ),

(2) Cambie su php.ini, encuentre su archivo php.ini de

<? phpinfo();

Quizás instales muchos php con versiones diferentes, así que no asumas la ubicación de tu archivo php.ini, obténgalo de su ''phpinfo'';

Cambia tu php.ini:

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

Luego reinicia tu apache o php-fpm.

Esta pregunta ya tiene una respuesta aquí:

  1. Cogió un proyecto de laravel perfectamente funcional desde un git a un mac que ejecutaba MAMP. Project funcionó perfectamente en una máquina Linux.
  2. instalación del compositor
  3. php artesanal migrate, obtuvo el siguiente error:

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

NB: php -v es 5.5 y mysql -v es 5.5 de la terminal Aquí está la parte de mi config / database.php

''mysql'' => array( ''driver'' => ''mysql'', ''host'' => ''localhost'', ''database'' => ''essays'', ''username'' => ''root'', ''password'' => ''root'', ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ),

Traté de reemplazar localhost con 127.0.0.1 sin ningún resultado. Amablemente ayuda ...

Editar: agregué estas tres líneas en mi php.ini

mysql.default_socket = /var/run/mysqld/mysqld.sock mysqli.default_socket = /var/run/mysqld/mysqld.sock pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock

También agregué este enlace simbólico:

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

Pero eso no solucionó. También saqué un nuevo proyecto laravel nuevo de git y me encontré con el mismo error después de la composer install luego php artisan migrate

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

La versión mac es 10.7.4


Esto funciona para mí en Laravel 5.0, cambie el DB_HOST = 127.0.0.1: 33060 en el archivo .env.

Otras respuestas no funcionan ...


Otra solución es agregar el número de puerto en la clave de host. En este caso, MAMP usa el 8889 por defecto:

''mysql'' => array( ''driver'' => ''mysql'', ''host'' => ''localhost:8889'', ''database'' => ''essays'', ''username'' => ''root'', ''password'' => ''root'', ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ),


Para Laravel 5.0+, cambie localhost a 127.0.0.1 en su archivo .env antes de ir a jugar con Unix Sockets, etc. Esto funcionó para mí.

Noobs tenga cuidado: para cualquiera que use Laravel 5 y use material de aprendizaje más antiguo, tenga en cuenta que hubo un cambio bastante marcado en la estructura de carpetas de versiones anteriores, aunque esto parece ser para mejor; consulte este artículo https://mattstauffer.co/blog/laravel-5.0-directory-structure-and-namespace


Si está utilizando Laravle 5.1.11 versión + MAC + MAMPP

tienes que agregar "Unix_socket" en el archivo "yourapp" /app/config/database.php

''mysql'' => [ ''driver'' => ''mysql'', ''host'' => env(''DB_HOST'', ''localhost''), ''unix_socket'' => ''/Applications/MAMP/tmp/mysql/mysql.sock'', ''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 param se agregó a la unidad de configuración mysql anterior.


Si está utilizando MAMP, asegúrese de agregar la clave unix_socket con un valor de la ruta que mysql.sock reside en MAMP.

''mysql'' => array( ''driver'' => ''mysql'', ''host'' => ''localhost'', ''unix_socket'' => ''/Applications/MAMP/tmp/mysql/mysql.sock'', ''database'' => ''database'', ''username'' => ''root'', ''password'' => ''root'', ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ),


Si está utilizando XAMPP, la solución es:

''mysql'' => array( ''driver'' => ''mysql'', ''unix_socket'' => ''/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'', ''host'' => ''localhost'' )


Tenía el mismo problema, pero ahora está funcionando para mí.

Si alguien todavía tiene problemas, intente esto:

  • Asegúrese de que su bootstrap/start.php contiene su nombre de host real, no el nombre de su host virtual. Ingrese el hostname de hostname en la terminal para obtener su nombre de host. Como es una matriz, creo que puede ingresar tanto su nombre de host como los nombres de su (s) host (es) virtual (es).
  • Reemplazar "localhost" con "127.0.0.1".