I use the command php artisan migrate to migrate my db in laravel 5 .. it gives me an error:
exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)'
I use the command php artisan migrate to migrate my db in laravel 5 .. it gives me an error:
exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)'
If you have all your configurations ok in the .env file then you should:
In Terminal run this command that lists processes with php
in it:
ps -ef | grep php
then:
501 4529 599 0 Sat03PM ttys000 0:00.15 php artisan serve
501 4533 4529 0 Sat03PM ttys000 0:25.11 /usr/bin/php -S 127.0.0.1:8000 /Applications/XAMPP/xamppfiles/htdocs/ds7/laravel/coffeeshop/server.php
Use the kill
command to terminate the process (Notice: The process id is the second column group of numbers.)
kill 4529
kill 4533
Then run php artisan config:clear
Finally, restart server with:
php artisan serve
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'laravel',
'username' => 'root',
'password' => 'PASSWORD IF HAVE OTHERWISE LEAVE IT BLANK ',
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
REMOVE THE ENV values from db,host and password and put them direct
This question was asked several times before .. checkout the best answers I found :
The problems behind this error could be :
unix_socket
value in your config file, checkout Question 2.php artisan migrate:install
from your local machine. You should SSH into the VM homestead ssh
and run your migrations from there, checkout Question 1.In your .env file change DB_PORT from
DB_PORT=3306
to
DB_PORT=33060
refrence to https://laravel.com/docs/5.4/homestead#connecting-to-databases
becarefull about last zero
Two way to solve it
Open your database config file (laravel_root/config/database.php) & search for the below code block.
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'blog'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
Change the code block as below
'host' => 'enteryourHostName',
'database' => 'ebterYourDatabastName',
'username' => 'enterYoutDatabaseUsername',
'password' => 'enterYourDatabasePassword',
Second way (Recommended by Laravel)
Check your Laravel root there have a file call .env if not exist, look for .env.example, copy/rename it as .env after that the file looks blow !
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
Modify the below block as follow
DB_HOST=yourHostName
DB_DATABASE=yourDatabaseName
DB_USERNAME=yourDatabaseUsername
DB_PASSWORD=youPassword
This Works for me.