connecting to database issue in laravel 5.1 - php

I am new to laravel and while trying to connect to database in localhost using xammp iam getting an error that
SQLSTATE[HY000] [1045] Access denied for user 'homestead'#'localhost' (using password: YES)
my connection code is that
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'hindutemples'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
but 'hindutemples' database exists i dnt know why it is trying to connect with homestead
Any help appreciated.

rename .env.example to .env. Then set appropriate values in .env files. It should work.
UPDATE
Laravel 5 stores settings in .env file. Laravel 5 comes with default .env.example file in a root folder. If you can not find it in project root it may have been hidden.
You need to rename .env.example or create new .env file inside project root and put app settings in it like given below,
APP_ENV=local
APP_DEBUG=true
APP_KEY=0SewSBZ47SfA4vRV6o8BeW74PMFwPpoX
DB_HOST=localhost
DB_DATABASE=hindutemples
DB_USERNAME=root
DB_PASSWORD=
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
env() returns values from .env files. if it could not find setting in .env file it returns false or if supplied default e.g. env('DB_USERNAME', 'homestead') it will return default value. in your case it can not find .env setting so it is returning homestead as a username and hence error.
Read More

Related

SQLSTATE[HY000] [2002] Connection refused when trying to add connect laravel database to Heroku

So I have a site on Heroku, which loads fine as long I don't go to a page that requires a database connection. What happens when I do land on one of those pages, is I get this error:
PDOException in Connector.php line 55: SQLSTATE[HY000] [2002] Connection refused
I'm using db4free.net to try to access a MySQL database. This is my database.php file. The ****** masking the actual values.
'default' => env('DB_CONNECTION', 'mysql-production'),
'mysql-production' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'db4free.net'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'en*******'),
'username' => env('DB_USERNAME', '*******'),
'password' => env('DB_PASSWORD', '*******'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
This my env file:
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:tUWa6AteuAOfEAh/IKx3c13tJEzSmS4La8QdKlEgByQ=
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=enviro-2
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
The env file is ignored by git.
Prior to trying db4free.net I tried following the steps in this article
https://mattstauffer.com/blog/laravel-on-heroku-using-a-postgresql-database/ but I still have the exact same problem. I also set the APP_KEY in the Heroku config variables to match the one in my env file.
Anyone have any ideas on why I get this error?
your connection details in .env file in incorrect.
you should write your credentials details in .env file as well as database.php file

Laravel MySQL SQLSTATE[HY000] [2002] Connection refused

So I have been trying to get an connection my database with homestead, but everytime I make a DB select statement I get an SQLSTATE[HY000] [2002] Connection refused. It seems like my problem is not the same as the others with the same title. I am using homestead with virtual box
Here is my select statement:
<?php
echo DB::select('select * from bruger where id = 1')
?>;
This is simply to check if I can get any info out.
I have tried various things in both my .env file and and database.php
This is what they are looking like currently:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
and
APP_ENV=local
APP_DEBUG=true
APP_KEY=randomKey
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=phpDatabase
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=secret
REDIS_PORT=33060
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
For DB_HOST and DB_PORT try using the IP and port as set in the Homestead.yaml file.
Default:
DB_HOST=192.168.10.10
DB_PORT=3306
The port should be 3306, since you are accessing from within the homestead machine, if I understood correctly.
In fact, check the documentation
You will use the default 3306 and 5432 ports in your Laravel database configuration file since Laravel is running within the virtual machine.

php artisan migrate isn't working

When I try to connect to my database i get this error
[PDOException]
SQLSTATE[HY000] [1045] Access denied for user 'loom'#'localhost' (using password: YES)
all my credentials are correct and when i change things up i get this error :
[PDOException]
SQLSTATE[HY000] [1049] Unknown database 'loomcoding'
Can anyone help me sort this out please
my .env file
APP_ENV=local
APP_DEBUG=true
APP_KEY=xxxx
DB_HOST=localhost
DB_DATABASE=cl20-loom
DB_USERNAME=loom
DB_PASSWORD=xxxx
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
my database.php file :
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'cl-loom',
'username' => 'loom',
'password' => '••••',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
I got this error last time create a database on phpmyadmin and change only the .env file to match with you phpmyadmin details and it will work.
It can be because the mysql service is not running or it isn't on the port 3306, in the last case you may specify the port where the mysql service is running as a attribute port of the mysql object in database.php file
If you are using mysql you have to create the database manually in phpMyAdmin or whatever software you are using for mysql.
And no need to change the whole database.php if you configure the .env file. Just change this line 'default' => env('DB_CONNECTION', 'mysql'), in database.php
Below code is not tested
Instead, you can add DB_CONNECTION=mysql this line in .env

How do I connect my Laravel 5 app to mysql using MAMP?

I've gotten several different errors running php artisan migrate while trying different things. The most recent one is:
Access denied for user 'homestead'#'localhost' (using password: YES
This is my database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'port' => '3306'
],
and this is the .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=halMyGPhfVZGrdpibFIwEE0wZipP5lqu
DB_HOST=localhost *updated
DB_DATABASE=forge *updated
DB_USERNAME=forge *updated
DB_PASSWORD= *updated
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
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
Try changing the following in your .env file or remove all the keys related to DB from .env file.
DB_HOST=localhost
DB_DATABASE=forge
DB_USERNAME=forge
DB_PASSWORD=
I had run into same issue, The problem is, the database.php file looks for the key DB_DATABASE etc. in the .env file. Since, that key is present in .env file, It doesn't consider the default value forge that you have provided in the statement env('DB_DATABASE', 'forge')
In plain english, "Look for the key DB_DATABASE in .env, if present, use that else use forge as default"
In your case, the keys are present in .env file hence, though you provide forge, it considers homestead that is defined in the .env file. And hence the error Access denied on 'homestead'#'localhost'
Hope I clarified the things.

how to connect to db with laravel 5

I updated my laravel4 to laravel5 now my problem is i cant connect to database
My mysql
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'lue'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ' '),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
i returns this problem
PDOException in Connector.php line 47:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'#'localhost' (using password: YES)
help :)
You need to edit your .env file in the root of your application and change the DB username and password there
Make sure you are editing the .env file, and not a .env.php file. In Laravel 4 there was a way to use .env.environment.php but in Laravel 5 it's all done with a .env file (note that it doesn't have a php suffix)
Also the data in the .env file must not be in the array format. It should just be as follows:
APP_ENV=local
APP_DEBUG=true
APP_KEY=longstring
DB_HOST=localhost
DB_DATABASE=dbname
DB_USERNAME=homestead
DB_PASSWORD=secret
I had the same problem and this is how I fixed it.Go to the root of your laravel folder (application folder) in my case it is C:\firstapp and open .env file in notepad++ Update the following code accordingly.
DB_HOST=localhost
DB_DATABASE=firstapp (this is database name)
DB_USERNAME=root (user name)
DB_PASSWORD= (password , leave empty if none , do not even put "")
Important
and then restart your application like this php artisan serve (using command line) while you are in the root of you application folder. See this image for clarification link.
You need to edit your .env file in the root of your application. Just configure as following example:
APP_ENV=local
APP_DEBUG=true
APP_KEY=6CqAQJdOd8oKoh0NhbefkmS0Pd8FDH6h
DB_HOST=localhost
DB_DATABASE=your database name
DB_USERNAME=your database user name
DB_PASSWORD=your password
CACHE_DRIVER=file
SESSION_DRIVER=file

Categories