试图在mac os mavericks上使用mysql,php和apache连接到localhost

时间:2014-04-15 15:41:32

标签: php mysql macos apache localhost

我试图使用apache和php在本地连接到mysql。我可以使用mysql workbench连接到mysql,我可以使用php和apache,但我无法使用php连接到mysql。 当我尝试时,我得到以下内容:

Warning: mysql_connect(): Connection refused in /Library/WebServer/Documents/login.php on line 25

这是代码:

mysql_connect($connection= mysql_connect("localhost", "RainyCats", "********");

我也尝试过根:

mysql_connect($connection= mysql_connect("localhost", "root", "********");

系统首选项中的mysql首选项窗格显示服务器正在运行,我已授予RainyCats的所有权限。

我已经从/private/var/mysql/mysql.sock创建了指向mysql.sock的符号链接到/tmp/mysql.sock my.cnf文件位于etc / my.cnf

我使用dmg安装了mysql。

编辑:我有php版本:5.4.24和Apache:2.2.26

谢谢你, 雨天

1 个答案:

答案 0 :(得分:1)

我在Mountain Lion操作系统上遇到了同样的问题,它背后可能是套接字错误。 似乎对于Macos上的本地服务器,您必须指定您的mysql-server正在使用的套接字文件到您的php代码:

  • 首先,你会告诉我"好的但是到底哪里是我的套接字文件?":

    $prompt> mysql -u myusername -p
    (enter the password here)
    
    mysql> show variables like '%socket%';
    
    +---------------+-----------------+
    | Variable_name | Value           |
    +---------------+-----------------+
    | socket        | /tmp/mysql.sock |
    +---------------+-----------------+
    1 row in set (0.00 sec)
    
  • 一旦你有了这条路径,就在你的php代码中使用它:

    $username = 'myusername';
    $password = 'mypassword';
    $host = 'localhost:/tmp/mysql.sock';
    $database = 'mydatabase';
    
    #connect to the database or die
    $link = mysql_connect($host, $username, $password);
    if (!$link) {
      die('Could not connect: ' . mysql_error());
    }
    mysql_select_db ($database);
    

感谢Alvin,我在his website上找到了这个解决方案:

希望这会有所帮助......