gon250
gon250

Reputation: 3545

php artisan migrate error PDOException in Laravel 4

I have a problem to execute this:

$ php artisan migrate

I'm getting an error

[PDOException]                             
SQLSTATE[HY000] [2002] Connection refused 

I'm using MAMP and it's working ok.

I have tried to set the localhost to 127.0.0.1 and I've added 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock' but nothing helps.

[Edit] also I've added the port and I have checked the user and the password are correct and the server is running properly.. any suggestion??

Thanks

Upvotes: 4

Views: 5994

Answers (4)

TechPrime
TechPrime

Reputation: 91

I know this is an old question, but it came up as the first result in Google when I had the same problem, so I wanted to add my solution here in case it helps someone else.

In MAMP when you click on MySQL, there is a setting to "Allow network access to MySQL" that needs to be enabled for Laravel to access the database (it wasn't enabled by default for me). This allows your application to connect to MySQL without using a Unix socket.

Upvotes: 5

ChrisH
ChrisH

Reputation: 127

Yes, had exactly this problem, with MAMP need to add to config/database 'port' => '8889' (assuming yu are using this port, rather than 80 which can cause conflicts with others apps like Skype!)

Upvotes: 0

jeff roussel
jeff roussel

Reputation: 81

change .env file in laravel : add MAMP mysql port

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

Jeff

Upvotes: 4

The Alpha
The Alpha

Reputation: 146191

Not sure but make sure your mysql server is running and it's running on the right port as expected because, Laravel's default port value is 3306 (it's the default port of mysql server) and most probably mysql is running on a different port. Here is a discussion and also check this answer, it's almost similar.

Also follow this thread which discussed and solved the same error you mentioned in your question:

[SOLVED] SQLSTATE[HY000] [2002] Connection refused

Upvotes: 6

Related Questions