Estoy en un Mac OS Yosemite usando Laravel 5.0.
Mientras estoy en mi entorno local , php artisan migrate
sigo obteniendo:
Acceso denegado para el usuario 'homestead' @ 'localhost' (utilizando contraseña: SÍ)
Configuración
Aquí está mi .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=*****
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
app \ config \ database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'homestead'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'unix_socket' => '/tmp/mysql.sock',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
¿Cómo evito este tipo de error?
He intentado :
1
en app / database.php
Reemplazar localhost
con127.0.0.1
'host'=> env('DB_HOST', 'localhost')
->'host' => env('DB_HOST', '127.0.0.1')
Además, en .env
DB_HOST=localhost
-> DB_HOST=127.0.0.1
2
Intenta especificar el entorno
php artisan migrate --env=local
3
Verifique si MySQL se ejecuta por ejecución
mysqladmin -u homestead -p status Enter password: secret
tengo
Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012
Lo que significa que está funcionando.
4 4
Compruebe MySQL UNIX Socket ( este paso funciona para mí )
Respuestas:
La razón del acceso denegado para el error del usuario 'homestead' @ 'localhost' laravel 5 es el problema de almacenamiento en caché del archivo .env.php porque Laravel 5 está utilizando una configuración basada en el entorno en su archivo .env.
1 . Vaya al directorio raíz de su aplicación y abra el archivo .env (en ubuntu puede estar oculto, así que presione ctrl+ hpara mostrar los archivos ocultos y si está en la terminal, escriba:
ls -a
para mostrar los archivos ocultos) en su editor y cambie la configuración de la base de datos. luego guarde su archivo .env2 . luego reinicie su servidor apache / servidor web. y actualiza tu página y has terminado
3 . Si todavía se produce un problema, intente ejecutar el siguiente comando para borrar el archivo de caché de configuración anterior.
Ahora ya has terminado con el error
fuente
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
._..env
yconfig:clear
cache:clear
todos los comandos, reiniciéapache
pero sigo teniendo el mismo problema.TLDR: debe detener el servidor Ctrl+ cy comenzar de nuevo utilizando
php artisan serve
Detalles:
Si está utilizando Laravel, y ya ha iniciado el servidor de desarrollo local por
php artisan serve
Y después de que el servidor anterior ya se esté ejecutando, cambia las cosas relacionadas con el servidor de la base de datos en el archivo .env. Como pasar de MySQL a SQLite o algo así. Debe asegurarse de detener el proceso anterior, es decir,
Ctrcl C
o cualquier cosa que detenga el proceso. Y luego reinicie Artisan Serve nuevamente, es decir, yphp artisan serve
actualice su navegador y se solucionará su problema relacionado con la base de datos. Esto es lo que funcionó para mí para Laravel 5.3fuente
Dos formas de resolverlo
Primera forma (no recomendado)
Abra el archivo de configuración de su base de datos (raíz_laravel / config / database.php) y busque el siguiente bloque de código.
Cambie el bloque de código de la siguiente manera
Segunda forma (Recomendado por Laravel)
Verifique su raíz de Laravel, allí tiene un archivo llamado .env si no existe, busque .env.example, ¡cópielo / renómbrelo como .env después de eso, el archivo se ve mal!
Modifique el siguiente bloque de la siguiente manera
Ahora funcionará bien.
fuente
root/config/database.php
parece redundante.si está utilizando
php artisan migrate
NO desde el cuadro vagabundo pero desde la máquina host, entonces debe definir dentro del.env
la ip del cuadro192.168.10.10
y, obviamente, establecer permiso para alojar al usuario desde su ip algo así como
en
.env
archivofuente
grant all privileges on *.* to 'homestead'@'localhost' identified by 'secret';
funcionó para mí.Si está utilizando el servidor web predeterminado de PHP (por ejemplo
php artisan serve
), debe reiniciar su servidor después de cambiar los valores de su archivo .env.fuente
revise este hilo en laracasts o esta publicación de blog para más detalles
si vas a
intente cambiar "host" en el archivo /app/config/database.php de "localhost" a "127.0.0.1". Puede encontrar más detalles y otras soluciones aquí en este hilo .
Compruebe también si ha especificado la correcta
unix_socket
. revisa este hilo .fuente
Compruebe MySQL UNIX Socket
Encuentra la ubicación de unix_socket usando MySQL
mysql -u homestead -p
Luego voy a config / database.php
Actualizo esta línea:
'unix_socket' => '/tmp/mysql.sock',
a :
'unix_socket' => '/var/run/mysqld/mysqld.sock',
Eso es. Funciona para mi como mi cuarto intento. Espero que estos pasos ayuden a alguien. :RE
fuente
Tuve el mismo problema y al final resultó que solo tenía que reiniciar el servidor y comenzar de nuevo
Ctrl+ centonces
fuente
En PC con Windows, siga a continuación.
Acceda a la carpeta raíz de su aplicación.
Edite el archivo .env
Edite el resaltado y cambie el nombre de usuario y la contraseña y el nombre de la base de datos en consecuencia.
fuente
en mi caso, después de reiniciar mi servidor, el problema desapareció.
salga / cierre el comando "php artisan serve" y
vuelva a ejecutar el comando "php artisan serve" .
fuente
Algún día en el futuro. Intenta borrar tu configuración primero
Cierre todas las ventanas de terminal / cmd y luego reinicie terminal / CMD y esto debería eliminar el mensaje de error. A ver si funciona.
fuente
después de config db reinicie el:
Si el servicio está activo antes de configurar db config.
fuente
estoy usando laravel 5. * Supongo que tengo una llamada de archivo
.env
en la raíz del proyecto que se parece a esto:Y eso fue sobre escribir la configuración de bd para que pueda eliminar esos vars de configuración para que laravel tome la configuración en / config o configure su configuración aquí.
Hice el segundo y me funciona :)
fuente
¡Entendido! Inicie sesión como root y otorgue a homestead @ localhost los derechos de todo.
Desde tu terminal:
Ahora el usuario habitual de Homesteads tiene acceso a todas sus tablas y, como tal, debería poder ejecutar cosas como migraciones.
fuente
Después de cambiar .env con la nueva configuración, debe detener el servidor y ejecutarlo nuevamente (php artisan serve). Porque laravel obtiene el entorno cuando se inicializa el servidor. ¡Si no reinicia, cambiará el .env preguntándose por qué los cambios no están teniendo lugar!
fuente
Todo lo que tiene que hacer es alterar su archivo .env .
Delante de DB_DATABASE, escriba el nombre de la base de datos y delante de DB_USERNAME, use root .
fuente
Solo quería publicar esto porque este problema me ha frustrado durante unas 3 horas hoy. No he probado ninguno de los métodos enumerados en las otras respuestas, aunque todos parecen razonables. De hecho, estaba a punto de intentar analizar cada una de las soluciones propuestas anteriormente, pero de alguna manera obtuve este golpe de inspiración. Esto es lo que funcionó para mí para que volviera a funcionar: YMMV:
1) Encuentra tu archivo .env. 2) Cambie el nombre de su archivo .env a otra cosa. Laravel 5 debe usar este archivo como una anulación para la configuración en otro lugar del marco. Cambié el nombre del mío a .env.old 3) Es posible que deba reiniciar su servidor web, pero no tuve que hacerlo.
¡Buena suerte!
fuente
Tienes que ejecutar el
$ php artisan migrate
comando desde Homestead, no desde tu Mac.fuente
MBP-bheng-aveniors
. Esa no es tu VM. Necesita SSH en Homestead ($ homestead ssh
) y luego ejecutar$ php artisan migrate
desde esa sesión SSH.Verifique su archivo " .env " en la carpeta raíz. ¿es correcto?
fuente
tengo encontrar solución
Vaya al directorio raíz de su aplicación y abra el archivo .env (en ubuntu puede estar oculto, así que presione ctrl + h para mostrar los archivos ocultos) en su editor y cambie la configuración de la base de datos. luego guarde su archivo .env
luego reinicie su servidor apache / servidor web. y actualiza tu página y has terminado
Esto funcionó para mí gl ...
fuente
simplemente cambie estas cosas en el archivo .env de su carpeta raíz.
Funcionó para mi.
fuente
en mi caso (laravel 5+) tuve que ajustar mi contraseña entre comillas simples y borrar la caché de configuración:
y luego ejecuta:
fuente
Inicie sesión en MYSQL: use la base de datos mysql.
Seleccione * del usuario;
Asegúrese de que su columna HOST sea correcta. Debe ser el host desde el que se conecta (su servidor de aplicaciones), ya sea la dirección IP o el nombre DNS. También '%' funcionará (es decir, comodín) pero no será seguro.
fuente
Verifique su archivo .env, si ha editado alguna de las variables, reinicie amablemente el servidor laravel y su problema se resolverá.
fuente
A. Después de actualizar el archivo .env con la configuración de la base de datos, borre la configuración larval "ejecutando php artisan config: clear"
B. Asegúrese de reiniciar su servidor apache / vuelva a ejecutar el comando "php artisan serve" para que su configuración surta efecto.
fuente
Tuve el mismo problema al usar SQLite. Mi problema fue que DB_DATABASE apuntaba a la ubicación incorrecta del archivo.
Cree el archivo sqlite con el comando táctil y genere la ruta del archivo usando php artisan tinker.
Luego envíe esa ruta exacta a la variable DB_DATABASE.
Sin la ruta correcta, obtendrá el error de acceso denegado
fuente
Si tiene un error al devolver algo como
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
se debe a que está cambiando la configuración de batabase comoDB_DATABASE=laravelu
. Entonces por ahora tú tampoco:DB_DATABASE=
[yourdatabase]
laravelu
en tu phpmyadminesto debería ser capaz de resolverlo
fuente
En mi caso, el error fue "causado" por mi configuración de Homestead / Vagrant sobre la cual olvidé :) intentar ejecutar la migración solo desde la línea de comandos.
En caso de usar el entorno Homestead Vagrant Box, debe ejecutar su migración desde su máquina Homestead (después de conectarse a ella usando ssh:),
[email protected]:22
entonces los derechos de acceso estarán bien y permitirán que se ejecute la migración.fuente
Según su pregunta, parece que está ejecutando una granja. En ese caso, asegúrese de ejecutar los comandos en su VM. Muchos desarrolladores, incluido yo, a menudo cometemos errores y ejecutamos comandos artesanales fuera de VM que los comandos intentarán conectar a nuestra base de datos local accesible a través de localhost, que es diferente de la base de datos utilizada por homestead. Cd a su directorio de Homestead y ejecute
luego cd en el código si es donde guarda sus proyectos y cd en su proyecto y ejecutar
php artisan migrate again
Espero que esto ayude a otras personas.fuente