Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Laravel: No connection could be made because the target machine actively refused it

I am building a web application in Laravel 5. The application is supposed to get "category names" stored on a MySQL database and display a form to add new "category names". When I execute the command php artisan serve and I navigate to http://localhost:8000/admin/categories/, I receive the following error message:

PDOException in Connector.php line 50:
SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.

According to several posts I read on stack overflow, many users encountering this error did not properly configure the .env file, which overrides the default settings for the PHP Data Object (PDO), as specified in the database.php file. The .env file is defined below:

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

And the mysql key within the database.php file is given as:

 'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'homestead'),
            'username'  => env('DB_USERNAME', 'homestead'),
            'password'  => env('DB_PASSWORD', 'secret'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,

Oddly, when I ssh into my virtual machine and I run mysql -uhomestead -psecret homestead, I am able to connect to the database. The question is, why is Laravel unable to connect to MySQL when I can connect to it directly with the same parameters? What else could be denying access to Laravel?

like image 818
jstein Avatar asked Sep 11 '15 01:09

jstein


4 Answers

I got this error because I forgot to start MySQL in the XAMPP controller.

like image 77
urvi sharma Avatar answered Nov 14 '22 18:11

urvi sharma


sometimes maybe caching problem:

    php artisan config:clear
like image 40
joun Avatar answered Nov 14 '22 17:11

joun


I changed the ip address specified in the homestead.yaml from localhost to 192.168.10.10. Then I ran homestead provision and that seemed to fix the problem. The host machine cannot resolve localhost or 127.0.0.1 because that is already mapped to itself.

like image 7
jstein Avatar answered Nov 14 '22 17:11

jstein


I'm having the same problem with Wampserver. It’s worked for me:

You must change this file: "C:\wamp\bin\mysql[mysql_version]\my.ini" For example: "C:\wamp\bin\mysql[mysql5.6.12]\my.ini"

And change default port 3306 to 80. (Lines 20 & 27, in both) port = 3306 To port = 80

I hope this is helpful.

And then Just Go to your Control panel and start Apache & MySQL Services.

like image 3
Jigs Virani Avatar answered Nov 14 '22 18:11

Jigs Virani