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

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

其他回答

MySQL套接字通常位于/tmp/ MySQL中。Sock或/var/mysql/mysql. Socksock,但可能PHP看起来在错误的地方。

Check where is your socket with: sudo /usr/libexec/locate.updatedb When the updatedb is terminated: locate mysql.sock Then locate your php.ini: php -i | grep php.ini this will output something like: Configuration File (php.ini) Path => /opt/local/etc/php54 Loaded Configuration File => /opt/local/etc/php54/php.ini Edit your php.ini sudo vim /opt/local/etc/php54/php.ini Change the lines: pdo_mysql.default_socket=/tmp/mysql.sock mysql.default_socket=/tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock where /tmp/mysql.sock is the path to your socket. Save your modifications and exit ESC + SHIFT: x Restart Apache sudo apachectl stop sudo apachectl start

当你面临以下问题时:

PHP抛出错误“警告:mysql_connect() http://function.mysql-connect: 2002没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)”

在/etc/php.ini中设置“mysql.default_socket”的值为

 "mysql.default_socket = /var/mysql/mysql.sock". 

然后在服务器管理中重新启动web服务

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

我也遇到过同样的问题,我是这样解决的:

我有这个,但不管用:

$con = mysql_connect('localhost', 'root', '1234');

我这样做了,效果很好:

$con = mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', '1234');

我没有使用mysql服务器,而是直接连接到Unix Socket。为我工作。

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

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

它运行得很好