search

Home  >  Q&A  >  body text

Warning: mysqli_connect(): (HY000/2002): File or directory not found

I'm trying to install a normal forum on my Mac, for which I just created a database and a user from the MySQL command line:

mysql> CREATE DATABASE vanilla;
Query OK, 1 row affected (0.00 sec)

mysql> create user 'vanilla_user3'@'localhost' IDENTIFIED BY 'vanilla_password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON * . * TO 'vanilla_user3'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

So I tried to connect using the following code:

$con=mysqli_connect("localhost","vanilla_user3","vanilla_password","vanilla");
if (mysqli_connect_errno($con)) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

But unfortunately I got an error message

Warning: mysqli_connect(): (HY000/2002): No such file or directory in /Users/kramer65/Sites/vanilla/info.php on line 3 Unable to connect to MySQL: No such file or directory

Do you know where I went wrong?

P粉350036783P粉350036783384 days ago492

reply all(2)I'll reply

  • P粉043432210

    P粉0434322102024-01-22 13:45:29

    I encountered the same problem, but the problem was related to the php.ini file.

    I had to edit these two lines in /etc/php.ini (or wherever php.ini is):

    mysql.default_socket = /tmp/mysql.sock
    mysqli.default_socket = /tmp/mysql.sock

    Restart the apache server to ensure changes are reflected.

    sudo apachectl restart

    reply
    0
  • P粉949848849

    P粉9498488492024-01-22 10:48:18

    Okay, I just found the solution. The problem turned out to be that the host should not be localhost, but 127.0.0.1. I always thought that localhost and 127.0.0.1 were the same, but the results were different.

    So, maybe as a tip to future users, always use IP when in doubt.

    reply
    0
  • Cancelreply