我试图连接到我的MySQL数据库与终端在我的苹果(与PHP)。

昨天它工作正常,现在我突然得到错误的标题。

当我使用浏览器运行该脚本时(我已经安装了XAMPP),但终端拒绝连接到DB。

下面是我要连接的文件(当我不包括这个时,脚本工作,但它不连接到DB):

<?php
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("FNB1C_data") or die(mysql_error());
?>

这应该可以工作,因为它适用于我的浏览器。

我在终端上使用的命令是php scriptname.php。


当前回答

你可以通过在苹果终端上别名MAMP php来实现:

alias phpmamp='/Applications/MAMP/bin/php/php7.0.0/bin/php'

例如:> phpmamp - v

现在您可以运行如下代码:> phpmamp scriptname.php

注意:这将只应用于当前终端会话。

其他回答

我得到了同样的错误。 在我启动phpMyAdmin之前,Mysql是作为一个独立的应用程序运行的。

我停止了mysql 然后 sudo /Applications/XAMPP/xamppfiles/ XAMPP stop sudo /Applications/XAMPP/xamppfiles/ XAMPP start

它运行得很好

你可以通过在苹果终端上别名MAMP php来实现:

alias phpmamp='/Applications/MAMP/bin/php/php7.0.0/bin/php'

例如:> phpmamp - v

现在您可以运行如下代码:> phpmamp scriptname.php

注意:这将只应用于当前终端会话。

我使用的是Mac OS X上的XAMPP,上面Brian Lowe的解决方案只需要稍加修改就能工作。

mysql。sock文件实际上在“/Applications/xampp/xamppfiles/var/mysql/”文件夹中。所以必须在/tmp和/var/mysql中链接它我还没有检查哪一个被PHP命令行使用,但这做了修复,所以我很高兴:-)

sudo su
ln -s /Applications/xampp/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock
mkdir /var/mysql
ln -s /Applications/xampp/xamppfiles/var/mysql/mysql.sock /var/mysql/mysql.sock

我只是有这个问题,但它只出现在加载某些页面(其他页面工作正常)。原来,在我关闭mysql_close()连接后,我正在调用MySQL。所以,正如@ bruenan所说:确保MySQL在调用时正在运行。

由于某些原因,OS X上的mysql获取所需套接字文件的位置有点错误,但幸运的是,解决方案非常简单,只需设置一个符号链接。

你可能有一个套接字(显示为零长度文件)作为/tmp/mysql。Sock或/var/mysql/mysql. SockSock,但是一个或多个应用程序正在其他位置寻找它。用这个命令找出答案:

ls -l /tmp/mysql.sock /var/mysql/mysql.sock

而不是移动套接字,编辑配置文件,并必须记住将编辑的文件保存在本地,远离路径正确的服务器,只需创建一个符号链接,以便您的Mac找到所需的套接字,即使它在错误的地方查找!

如果你有/tmp/mysql。Sock,但没有/var/mysql/mysql袜子然后……

cd /var 
sudo mkdir mysql
sudo chmod 755 mysql
cd mysql
sudo ln -s /tmp/mysql.sock mysql.sock

如果你有/var/mysql/mysql.没有/tmp/mysql。袜子然后……

cd /tmp
ln -s /var/mysql/mysql.sock mysql.sock

您将需要权限来创建目录和链接,因此如果需要,只需在上面的命令前面加上sudo即可。