Search code examples
phpmysqlmysql-connect

mysql_connect timing out


I am trying to set up a PHP framework on my Mac 10.6 computer, and it keeps erroring during setup due to database connectivity issues. So I put together a small php script to see if I could connect to the server myself, and it couldn't either. The operation times out.

However, I am able to login to mysql from commandline perfectly fine. It's only PHP that is having these connection issues. Does anyone have any ideas?

Here is the script.

<?php
  $connection = mysql_connect("http://localhost", "root", "");
if( $connection ) {
  mysql_close( $connection );
  die('TRUE');
}else {
  die('Could not connect: ' . mysql_error());
}

?>

EDIT: I tried removing http:// but then I get a "No such file error."

PHP Warning:  mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/newuser/Downloads/t.php on line 2
PHP Warning:  mysql_connect(): No such file or directory in /Users/newuser/Downloads/t.php on line 2
Could not connect: No such file or directory

Solution

  • You are using this :

    mysql_connect("http://localhost", "root", "");
    

    But your MySQL host is not http://localhost : it's probably localhost.


    Try to remove that `http://`, using this :
    mysql_connect("localhost", "root", "");
    

    *As a sidenote : working with the root account is not a good practice -- even on a development platform.*
    ----------

    EDIT after the comment : In that case, try with 127.0.0.1 (the IP address of localhost)


    And if you really want to use Unix sockets, you'll have to find which socket is used by your MySQL server *(it should be indicated in its configuration)* ; for instance, in my `/etc/mysql/my.cnf`, I have :
    [mysqld_safe]
    socket          = /var/run/mysqld/mysqld.sock
    

    Then, you'll want PHP to use the same one :