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

后端 未结 30 2530
南方客
南方客 2020-11-22 03:23

I believe that I\'ve successfully deployed my (very basic) site to fortrabbit, but as soon as I connect to SSH to run some commands (such as php artisan migrate

相关标签:
30条回答
  • 2020-11-22 03:57

    All these answers seem like heavy lifting...

    I just created a .env file; edited my bootstrap/app.php file, and uncommented the following line...

    Dotenv::load(__DIR__.'/../');

    Hope this helps someone

    0 讨论(0)
  • 2020-11-22 03:58

    I encountered the [PDOException] SQLSTATE[HY000] [2002] No such file or directory error for a different reason. I had just finished building a brand new LAMP stack on Ubuntu 12.04 with Apache 2.4.7, PHP v5.5.10 and MySQL 5.6.16. I moved my sites back over and fired them up. But, I couldn't load my Laravel 4.2.x based site because of the [PDOException] above. So, I checked php -i | grep pdo and noticed this line:

    pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
    

    But, in my /etc/my.cnf the sock file is actually in /var/run/mysqld/mysqld.sock.

    So, I opened up my php.ini and set the value for pdo_mysql.default_socket:

    pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
    

    Then, I restarted apache and checked php -i | grep pdo:

    pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
    

    That fixed it for me.

    0 讨论(0)
  • 2020-11-22 03:58

    If you are using Laravel Homestead, make sure you're calling the commands on the server.

    homestead ssh
    

    Then simply cd to the right directory and fire your command there.

    0 讨论(0)
  • 2020-11-22 03:58

    In my case, I was running php artisan migrate on my mac terminal, when I needed to ssh into vagrant and run it from there. Hope that helps someone the headache.

    0 讨论(0)
  • 2020-11-22 03:58

    In may case, I'd simply used

    vagrant up
    

    instead of

    homestead up
    

    for my forge larval setup using homestead. I'm assuming this meant the site was getting served, but the MySQL server wasn't ever booted. When I used the latter command to launch my vagrant box, the error went away.

    0 讨论(0)
  • 2020-11-22 04:02

    I got the same problem and I'm running Mac OS X 10.10 Yosemite. I have enabled the Apache Server and PHP that already comes with the OS. Then I just configured the mCrypt library to get started. After that when I was working with models and DB I got the error:

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

    The reason I found is just because PHP and MySQL can't get connected themselves. To get this problem fixed, I follow the next steps:

    1. Open a terminal and connect to the mysql with:

      mysql -u root -p
      
    2. It will ask you for the related password. Then once you get the mysql promt type the next command:

      mysql> show variables like '%sock%'
      
    3. You will get something like this:

      +-----------------------------------------+-----------------+
      | Variable_name                           | Value           |
      +-----------------------------------------+-----------------+
      | performance_schema_max_socket_classes   | 10              |
      | performance_schema_max_socket_instances | 322             |
      | socket                                  | /tmp/mysql.sock |
      +-----------------------------------------+-----------------+
      
    4. Keep the value of the last row:

      /tmp/mysql.sock
      
    5. In your laravel project folder, look for the database.php file there is where you configure the DB connection parameters. In the mysql section add the next line at the end:

      'unix_socket' => '/tmp/mysql.sock'
      
    6. You must have something like this:

      'mysql' => array(
              'driver'    => 'mysql',
              'host'      => 'localhost',
              'database'  => 'SchoolBoard',
              'username'  => 'root',
              'password'  => 'venturaa',
              'charset'   => 'utf8',
              'collation' => 'utf8_unicode_ci',
              'prefix'    => '',
              'unix_socket' => '/tmp/mysql.sock',
          ),
      

    Now just save changes, and reload the page and it must work!

    0 讨论(0)
提交回复
热议问题