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

在mac os mavericks上尝试使用mysql、php和apache连接到localhost,php,mysql,macos,apache,localhost,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_c

我正在尝试使用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到/tmp/mysql.sock的指向mysql.sock的符号链接 my.cnf文件位于etc/my.cnf中

我使用dmg安装了mysql

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

谢谢,,
Rainy

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

$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);
  • 首先,你会告诉我“好的,但是我的套接字文件到底在哪里?”

  • 获得路径后,在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,我在以下网站上找到了此解决方案:


希望这有帮助…

感谢您的帮助,情况略有改变:Mysql服务器实例不会从系统首选项开始,它只是旋转然后说停止。我也无法从终端启动它,如果我将主机更改为127.0.0.1,我的php将连接到mysql。我尝试通过终端连接时遇到的错误是:错误2002(HY000):无法通过套接字“/tmp/MySQL.sock”连接到本地MySQL服务器(2)