such sqlstate rehusada refused pdoexception hy000 failed conexión 000webhost php laravel-5 migration homestead artisan

php - rehusada - sqlstate[hy000][2002] connection refused



SQLSTATE[HY000][2002] Se rechazó la conexión dentro de Laravel homestead (5)

Usando Mac OS X y Homestead 2.2.1 con Laravel 5.2.

En terminal (dentro de Homestead en la carpeta de mi proyecto) puedo hacer php artesanal para ver todos los comandos disponibles. Cuando trato de ejecutar php artesanal migrate obtengo un error de conexión:
SQLSTATE[HY000] [2002] Connection refused

Configuré un proyecto Laravel con estos ajustes .env

DB_HOST=127.0.0.1 DB_DATABASE=tcv DB_USERNAME=homestead DB_PASSWORD=secret

También probé localhost para DB_HOST y root para DB_USERNAME y DB_PASSWORD. ¡Y todas las variaciones posibles de estas juntas!

En Sequel Pro (aplicación de administración db) PUEDO conectarme con esta configuración

Host 127.0.0.1 Username homestead Password secret Database tcv Port 33060

Pero esta base de datos está obviamente vacía, porque no puedo migrar desde la terminal ...

Por lo que puedo ver, es un problema de configuración, ya que puedo conectarme con Sequel Pro. Pero sinceramente, no tengo idea de lo que está mal configurado.

Gracias por la ayuda !!

EDITAR
Por alguna razón, obtengo el mismo error de SQLSTATE[HY000] [2002] Connection refused cuando muevo mi proyecto a MAMP y ejecuto la migración de php artesanal.
Ahora estoy completamente perdido ...


Esta es una solución simple. Su base de datos mysql ha perdido su conexión con el servidor. Si está ejecutando un servidor local, ejecute esto en su terminal:

mysqld

Eso reconectará su base de datos. Luego (si estás usando homebrew) ejecuta:

brew services start mysql

Esto se conecta automáticamente a su base de datos al iniciar sesión.


Estaba teniendo este problema. Cuando me conecto con Sequel Pro, necesito usar 33060 como puerto, pero en el archivo .env tiene que ser 3306. Tenía 33060 en el archivo .env. Cambió a 3306 y funcionó.


Es posible que su ''mysql'' no haya comenzado o no esté en el puerto ''3306''


Problema

En Laravel tiene config/database.php donde se encuentra toda la configuración para la conexión. También tiene un archivo .env en el directorio raíz de su proyecto (que todos usan para ahorrar tiempo). Esto contiene variables que puede usar para todo el proyecto.

En un proyecto L5 estándar, la sección MySql de config/database.php ve así:

''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, ''engine'' => null, ],

¡Note que no hay un puerto configurado!

Aunque en mi archivo .env había establecido DB_PORT=33060 . Pero ese value (3306) nunca se leyó en config/database.php .
Así que no seas tonto como yo y te olvides de revisar el archivo database.php .

FIJAR
Simplemente agregue ''port'' => env(''DB_PORT'', 3306), a su config / database.php y establezca ese valor en .env como este DB_PORT=33060

Me encontré con esto y descubrí que al cambiar esto en el archivo .env de 127.0.0.1 a localhost lo solucioné.

DB_HOST = localhost