我试图连接到我的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。
我也有同样的问题
(PDOException)
SQLSTATE[HY000][2002]没有这样的文件或目录
(ErrorException)
警告:PDO::__construct():[2002]没有这样的文件或目录(试图通过unix:///var/mysql/mysql.sock连接)在…htdocs/Symfony/vendor/ Doctrine - DBAL/ lib/Doctrine/DBAL/Driver/PDOConnection.php
因此,解决方案是创建一个指向sock文件的符号链接,从而解决问题。请执行以下操作来解决该问题:
$ sudo mkdir /private/var/mysql/
$ sudo ln -s /Applications/MAMP/tmp/mysql/mysql袜子/私人/ var / mysql / mysql.sock
来源:http://www.reecefowell.com/2012/07/21/symfony2-cli-does-not-connect-to-mysql-while-browser-works-fine/
由于某些原因,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即可。