"SQLSTATE[HY000] [2002] No such file or directory" error when migrating table in Laravel

10,297

Solution 1

try 127.0.0.1 instead of localhost in your .env file. It works for me :)

Solution 2

Add mysql.sock path in database.php file like below example

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

Eample

'mysql' => [
        'driver' => 'mysql',
        'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '8889'),

PDOException SQLSTATE[HY000] [2002] No such file or directory

Solution 3

Change localhost as your DATABASE_HOST in the .env file, change it to 127.0.0.1, and after that run php artisan config:clear and then run php artisan migrate:install again.

Or if your problem is not solved, use these changes in your .env files:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306

Then in Database.php add folder location:

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),

Finally, try:

php artisan config:clear
php artisan migrate:install
Share:
10,297

Related videos on Youtube

Ken
Author by

Ken

Updated on July 13, 2022

Comments

  • Ken
    Ken almost 2 years

    I am getting the following error when I try to migrate a table in Laravel 5 using the "php artisan migrate" command:

    'SQLSTATE[HY000] [2002] No such file or directory' in . . . /vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:47

    My .env file includes the default settings as follows:

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

    My database.php file lists mysql as the default database connection, homestead is listed as the database in my homestead.yaml file, and homestead is one of the tables listed when I access mysql and use the show databases; command.

    Any thoughts about what I might be doing wrong?

    • Daniel Wood
      Daniel Wood about 9 years
      I just had this issue and it was because I in the wrong terminal window. I was trying to run the command on my local machine rather than the vagrant box.