Najib jamshidi
Najib jamshidi

Reputation: 113

why .env file configuration in laravel is not working

DB_CONNECTION=mysql      
DB_HOST=127.0.0.1     
DB_PORT=3306     
DB_DATABASE=
DB_USERNAME=root     
DB_PASSWORD=   

this is my configuration for laravel 5.4 but php artisan migrate is not working and have error and the migrate error

Users-MacBook-Pro: ATP Developers php artisan migrate

In Connection.php line 664: 
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table schema = atp_db and table_name = migrations)

In Connector.php line 87:
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)

Upvotes: 8

Views: 14918

Answers (9)

Bloody Kheeng
Bloody Kheeng

Reputation: 1

I spent almost 24 hrs tried evry solution i found of laravel artisan clear optimise bla bla etc nothing worked

i realised it later after starting the server in powershell outside vscode thats when that new instance started picking from my env

so guys try running php artisan serve in powershell not in vscode and see

Upvotes: 0

Samira kalantari
Samira kalantari

Reputation: 320

I had the same issue and i couldnt run "config:cache" artisan command even with Artisan::call('config:cache');

so i done this and solved my issue:

artisan config:cache caches all files from /config into a single array that it stores. It then reads all config variables from that array and ignores anything in .env or the /config files until you recache them. That's why it still works after deleting .env.

https://laravel.com/docs/5.6/configuration#configuration-caching

If you don't have ssh access to your live server, you'd just need to delete the bootstrap/cache/config.php file, which is the cache file config:cache generates.

Upvotes: -1

М.Б.
М.Б.

Reputation: 1420

This combo worked for me:

php artisan clear-compiled 
composer dump-autoload
php artisan optimize

Upvotes: 0

Faraz Ahmad
Faraz Ahmad

Reputation: 555

I faced a similar problem. So, I run the following commands as mentioned at https://laracasts.com/discuss/channels/general-discussion/env-file-and-config-keys-not-updating-after-change, php artisan cache:clear php artisan config:clear php artisan route:clear

Also, make sure to restart the server as well

php artisan serve

Upvotes: 6

Indeed I had the same problem, I can not explain why Laravel indicates the old Host but the solution is to change the password.

Use below => php artisan config:cache

Upvotes: 1

Dom DaFonte
Dom DaFonte

Reputation: 1779

This error would indicate that you don't have a database user configured in your .env file: ''@'localhost' . Your .env should have all those fields populated with the database name and credentials you configured before running any function that connects to the database.

Here are the preliminary steps to setup your database and .env file prior to running a php artisan migrate:

Hope it helps.

Step 1: Login to your mysql and create the database.

mysql -u root -p
create database just_brew_it;

Step 2: Although you can use root to authenticate via laravel, I'd create a new user to mitigate risk of any security issues:

GRANT ALL PRIVILEGES ON just_brew_it.* TO 'brew_user'@'%' identified by 'pint0fStell@' WITH GRANT OPTION;
FLUSH privileges;

Step 3: Modify your .env with the appropriate database, username and password

DB_CONNECTION=mysql      
DB_HOST=127.0.0.1     
DB_PORT=3306     
DB_DATABASE= just_brew_it
DB_USERNAME= brew_user
DB_PASSWORD= pint0fStell@

Upvotes: 0

jzenlcuaj
jzenlcuaj

Reputation: 1

The error indicates that you do not have the correct user and host combination in your database. The env file shows host is 127.0.0.1 but localhost is specified in the error. Add user@localhost entry to the database or user@% for wildcard.

Upvotes: 0

parastoo
parastoo

Reputation: 2469

you should write these:

DB_DATABASE = your database name
DB_USERNAME = root     
DB_PASSWORD = your password

and again run php artisan serve to make sure about saving .env and again run php artisan migrate

Upvotes: 2

user320487
user320487

Reputation:

Change env host entry to DB_HOST=localhost. Or add the @'127.0.0.1' credentials to mysql.

Upvotes: 0

Related Questions