yes usuario usando sqlstate queryexception password para illuminate hy000 for error denegado contraseña acceso php laravel laravel-5 database-migration homestead

php - queryexception - sqlstate hy000 1045 acceso denegado para el usuario homestead localhost usando contraseña yes



Acceso denegado para el usuario ''homestead'' @ ''localhost''(utilizando contraseña: SÍ) (27)

Estoy en un Mac OS Yosemite usando Laravel 5.0.

Mientras estoy en mi entorno local , ejecuto php artisan migrate y 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 con 127.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 está ejecutando ejecutando

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í )


Cuando instala Homestead, esto crea una base de datos "homestead" predeterminada en la VM. Debería SSH en la máquina virtual de VM homestead ssh y ejecutar sus migraciones desde allí. Si trabaja localmente sin VM, deberá crear su base de datos manualmente. Por defecto, la base de datos debe llamarse homestead, el nombre de usuario es homestead y la contraseña es secreta.

revise este hilo en laracasts o esta publicación de blog para más detalles

si vas a

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

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 thread .

Compruebe también si ha especificado el unix_socket correcto. revisa este thread .


Compruebe MySQL UNIX Socket

Encuentra la ubicación de unix_socket usando MySQL

mysql -u homestead -p

mysql> show variables like ''%sock%''; +-----------------------------------------+-----------------------------+ | Variable_name | Value | +-----------------------------------------+-----------------------------+ | performance_schema_max_socket_classes | 10 | | performance_schema_max_socket_instances | 322 | | socket | /var/run/mysqld/mysqld.sock | +-----------------------------------------+-----------------------------+ 3 rows in set (0.00 sec)

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


¡Lo tengo! Inicie sesión como root y otorgue a homestead @ localhost los derechos de todo.

Desde tu terminal:

$ homestead ssh $ mysql -u root -p Enter password: secret mysql> grant all privileges on *.* to ''homestead''@''localhost'' identified by ''secret''; Query OK, 0 rows affected (0.00 sec) exit

Ahora el usuario habitual de Homesteads tiene acceso a todas sus tablas y, como tal, debería poder ejecutar cosas como migraciones.


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.


Algún día en el futuro. Intenta borrar tu configuración primero

php artisan config:clear.

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.


Compruebe su archivo .env, si ha editado alguna de las variables, reinicie amablemente el servidor laravel y su problema se resolverá.


Debe ejecutar el comando $ php artisan migrate desde Homestead, no desde su Mac.


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!


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 utilizando ssh: [email protected]:22 ), los derechos de acceso estarán bien y permitirán que se ejecute la migración.


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 está conectando (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.


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, presione ctrl + h para mostrar los archivos ocultos y si está en la terminal, escriba: ls -a para mostrar los archivos ocultos) en su editor y cambie la base de datos Configuración de configuración. luego guarde su archivo .env

DB_HOST=localhost DB_DATABASE=laravelu DB_USERNAME=root DB_PASSWORD=''''

2) luego reinicie su servidor apache / servidor web. y actualiza tu página y has terminado

3) Si aún se produce un problema, intente ejecutar el siguiente comando para borrar el archivo de caché de configuración anterior.

php artisan config:clear

Ahora ya terminaste con el error


Si está utilizando el servidor web predeterminado de PHP (por ejemplo, php artisan serve ) necesita reiniciar su servidor después de cambiar los valores de su archivo .env.


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 su configuración de DB_DATABASE=laravelu como DB_DATABASE=laravelu . Entonces por ahora tú tampoco:

  1. Cambie DB_DATABASE= [yourdatabase] o
  2. crea una base de datos llamada laravelu en tu phpmyadmin

esto debería ser capaz de resolverlo


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 probar 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 estar usando 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!


TLDR: debe detener el servidor Ctrl + c y 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 su servidor de base de datos en el archivo .env. Como pasar de MySQL a SQLite o algo así. Ctrcl C 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, y php artisan serve y actualice su navegador y su problema relacionado con la base de datos se solucionará. Esto es lo que funcionó para mí para Laravel 5.3


Todo lo que tiene que hacer es alterar su archivo .env .

DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret

Delante de DB_DATABASE, escriba el nombre de la base de datos y delante de DB_USERNAME, use root .


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 utilizando php artisan tinker.

$ touch database/database.sqlite $ php artisan tinker Psy Shell v0.8.0 (PHP 5.6.27 — cli) by Justin Hileman >>> database_path(‘database.sqlite’) => "/Users/connorleech/Projects/laravel-5-rest-api/database/database.sqlite"

Luego envíe esa ruta exacta a la variable DB_DATABASE.

DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=/Users/connorleech/Projects/laravel-5-rest-api/database/database.sqlite DB_USERNAME=homestead DB_PASSWORD=secret

Sin la ruta correcta, obtendrá el error de acceso denegado


Tuve el mismo problema y al final resultó que solo tenía que reiniciar el servidor y comenzar de nuevo

Ctrl + c entonces

php artisan serve


Verifique su archivo " .env " en la carpeta raíz. ¿es correcto?

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret


después de config db reinicie:

php artisan serve

Si el servicio está activo antes de configurar db config.


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" .


estoy usando laravel 5. * Supongo que tengo un archivo llamado .env en la raíz del proyecto que se parece a esto:

APP_ENV=local APP_DEBUG=true APP_KEY=SomeRandomString DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null

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 :)


si está utilizando php artisan migrate NOT from vagrant box pero desde la máquina host, entonces debe definir dentro de .env la ip de la caja 192.168.10.10

y, obviamente, establecer permiso para alojar al usuario desde su ip algo así como

grant all privileges on *.* to ''homestead''@% identified by ''secret'';

en archivo .env

DB_HOST=192.168.10.10 DB_DATABASE=homestead DB_USERNAME=homestead


simplemente cambie estas cosas en el archivo .env de su carpeta raíz.

DB_DATABASE=your_db_name DB_USERNAME=your_db_user_name DB_PASSWORD=''your_db_password''

A mi me funciono.


tengo encontrar solución

  1. 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

  2. luego reinicie su servidor apache / servidor web. y actualiza tu página y has terminado

  3. Si aún se produce un problema, intente ejecutar el siguiente comando para borrar el archivo de caché de configuración anterior.

Esto funcionó para mí gl ...


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.

''host'' => env(''DB_HOST'', ''localhost''), ''database'' => env(''DB_DATABASE'', ''blog''), ''username'' => env(''DB_USERNAME'', ''root''), ''password'' => env(''DB_PASSWORD'', ''''),

Cambie el bloque de código de la siguiente manera

''host'' => ''yourHostName'', ''database'' => ''YourDatabastName'', ''username'' => ''YoutDatabaseUsername'', ''password'' => ''YourDatabasePassword'',

Segunda forma (Recomendado por Laravel)

Verifique su raíz de Laravel allí tiene una llamada de archivo .env si no existe, busque .env.example, cópielo / renómbrelo como .env después de eso, ¡el archivo se ve mal!

APP_ENV=local APP_DEBUG=true APP_KEY=someRandomNumber DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null

Modifique el siguiente bloque de la siguiente manera

DB_HOST=yourHostName DB_DATABASE=yourDatabaseName DB_USERNAME=yourDatabaseUsername DB_PASSWORD=youPassword

Ahora funcionará bien.


En PC con Windows, siga a continuación.

  1. Acceda a la carpeta raíz de su aplicación.

  2. 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.