Creé un nuevo proyecto de laravel en laravel 8. Configuré la instalación de Sail correctamente, todo funciona bien para la conexión de la base de datos en local, pero cuando intento conectar mi base de datos usando sail, me da un error.
SQLSTATE[HY000] [2002] Conexión rechazada (SQL: select * from information_schema.tables where table_schema = laravel8 and table_name =migrations and table_type = 'BASE TABLE')
Ya he borrado mis archivos de configuración y caché.
Tuve este mismo problema después de crear un segundo proyecto de vela en mi ventana acoplable. No estaba (todavía no está) aceptando el nombre de usuario o la contraseña de vela, pero pude ingresar con la raíz, lo que me dio el error que diste anteriormente. Fui a la aplicación Desktop Docker, hice clic en el contenedor en ejecución, encontré la parte de mysql y ejecuté la CLI, escribí mysql y luego ejecuté la consulta CREATE DATABASE yourdatabasename; la migración funcionó perfectamente bien.
Cambiar DB_USERNAME de sail a root funcionó para mí. Supongo que navegar no tenía los privilegios requeridos.
DB_HOST=mysql DB_PORT=3306 DB_DATABASE=database DB_USERNAME=root # changed from sail DB_PASSWORD=passwordsi desea ejecutar mysql en un puerto diferente, por ejemplo, 3307 como se muestra a continuación
ports: - 3307:3306debe agregar la variable de entorno FORWARD_DB_PORT al archivo .env como este
DB_PORT=3306 // this is for container port FORWARD_DB_PORT=3307 // this is for local portEn primer lugar, detenga todos los servicios que usen brew, especialmente MySQL
brew services stop MySQLen su archivo docker-yaml:
laravel.test ports: - '70:80' mysql: ports: - '3456:3306'Ahora ejecute su comando de migración de artesanos de vela.
Esto debería solucionar tu problema.
Tal vez debería hacer coincidir las variables de entorno de .env.testing, ya que, como dice willpercey-gb, el comando sail:install actualiza las variables de entorno de .env, pero no de .env.testing.
Estaba investigando el mismo problema y encontré esto.
El código muestra un comando artesanal agregado por laravel sail - sail:install que sobrescribe las variables de host de su archivo .env con nombres de servicio.
Cambié DB_HOST de 127.0.0.1 a mysql y se solucionó