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

前端 未结 10 2144
太阳男子
太阳男子 2020-12-05 11:19

I have put PushChatServer dir in htdocs folder and create database puschat try to run @\"http://localhost/PushChatServer/api/test/database.php\"

Then I got following

相关标签:
10条回答
  • 2020-12-05 11:33

    Just ran into this same issue and the problem is the password. In the tutorial the author lists the password as:

    "d]682\#%yl1nb3"
    

    So as per the suggestion given by @Marki555, I looked in the config file - api_config.php. and the password listed there is:

    "d]682\#%yI1nb3"
    

    The upper case 'I' is what caused the issue because the password you set for user on the db has the password with the lowercase l but it really is looking for the uppercase I. After I changed the pushchat user's password to have an uppercase i, it worked!

    0 讨论(0)
  • 2020-12-05 11:34

    I had the same error for Mysql PDO, this code works for me!

    <?php
    $dsn = 'mysql:host=127.0.0.1;dbname=testdb';
    $username = 'username';
    $password = 'password';
    $options = array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    ); 
    
    $dbh = new PDO($dsn, $username, $password, $options);
    ?>
    

    got this code from : http://php.net/manual/en/ref.pdo-mysql.connection.php

    0 讨论(0)
  • 2020-12-05 11:35

    I'm not sure if this will work for you; but I use CakePHP, and I get this error whenever I forget to put the port number at the end of the 'host'.

    Hope this helps!

    Before

    'test' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'username' => 'root',
            'password' => 'root',
            'database' => 'mylogin',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
            'quoteIdentifiers' => false,
            'log' => false,
            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
            'url' => env('DATABASE_TEST_URL', null),
        ]
    

    After

    'test' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost:8080',
            'username' => 'root',
            'password' => 'root',
            'database' => 'mylogin',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
            'quoteIdentifiers' => false,
            'log' => false,
            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
            'url' => env('DATABASE_TEST_URL', null),
        ]
    
    0 讨论(0)
  • 2020-12-05 11:37

    Restart your database and local web server:

    • sudo service mysqld restart
    • sudo service mysqld restart

    It should work!

    0 讨论(0)
  • 2020-12-05 11:43

    On Mac OSX/MAMP you may find a mysql.sock.lock file in your /Applications/MAMP/tmp/mysql folder.

    You can safely remove the file mysql.sock.lock and you should be in good shape.

    0 讨论(0)
  • 2020-12-05 11:45

    You need to change host from localhost to 127.0.0.1

    Laravel 4: In your app/config/database.php try changing host from localhost to 127.0.0.1

    Laravel 5: In the .env file, change DB_HOST from localhost to 127.0.0.1

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

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