我试图连接到我的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。


当前回答

另一个解决方案是修复php.ini配置文件中的套接字位置,就像这样:

pdo_mysql.default_socket=/tmp/mysql.sock

当然,符号链接也可以工作,所以这是一个你改变的偏好问题。

其他回答

Mac OS X EL Capitan + MAMP Pro 这样做

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

然后这样做

cd /tmp
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock

希望这能为您节省一些时间。

我使用的是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

当你使用port安装php53-mysql时,它会返回以下消息,这是这个问题的解决方案:

To use mysqlnd with a local MySQL server, edit /opt/local/etc/php53/php.ini
and set mysql.default_socket, mysqli.default_socket and
pdo_mysql.default_socket to the path to your MySQL server's socket file.

For mysql5, use /opt/local/var/run/mysql5/mysqld.sock
For mysql51, use /opt/local/var/run/mysql51/mysqld.sock
For mysql55, use /opt/local/var/run/mysql55/mysqld.sock
For mariadb, use /opt/local/var/run/mariadb/mysqld.sock
For percona, use /opt/local/var/run/percona/mysqld.sock

修复了即将出现的2002套接字错误——这是连接MySQL放置套接字的地方和OSX认为它应该在的地方,MySQL把它放在/tmp中,OSX在/var/ MySQL中寻找它,套接字是一种允许MySQL客户端/服务器通信的文件类型。

sudo mkdir /var/mysql

然后

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

来源:http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

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