SQLSTATE [HY000] [2002]没有这样的文件或目录

时间:2014-03-05 03:38:44

标签: php mysql

我正在尝试在OS X上运行一个laravel项目。我用自制软件安装了MySql。我试着用谷歌搜索我为什么会收到这个错误:

SQLSTATE[HY000] [2002] No such file or directory

当我尝试

php artisan migrate

我看到的大部分答案都说php和MySql无法相互通信。我一直试图看看我哪里出错,因为我认为我之前关于它的帖子,它仍然无效。我创建了一个只执行此操作的页面:

<?php
    phpinfo();
?>

我看到这些类型的东西: 在配置区域中,我看到:

'--with-mysql-sock=/tmp/mysql.sock' '--with-mysqli=mysqlnd' '--with-mysql=mysqlnd' '--with-pdo-mysql=mysqlnd' '--enable-pcntl' '--enable-zend-signals' '--enable-dtrace'

加载配置文件:

/usr/local/etc/php/5.4/php.ini

如果我ls /tmp,我确实看到了mysql.sock。

在那个php.ini文件中,我设置了这些行: pdo_mysql.default_socket = / TMP /的mysql.sock mysql.default_socket = /tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock

然后在/usr/local/Cellar/mysql/5.6.16/my.cnf中,我添加了以下行:

socket = /tmp/mysql.sock

我DID重启apache,以及检查mysql是否正在运行。除了php和mysql连接之外,我还没有看到任何其他建议。我认为我的系统上有两个版本的php,因为当我安装mcrypt或其他我不记得的东西时,它安装了另一个php版本。但是当我查看phpinfo的输出时,我正在编辑相应的php.ini文件。我不知道是否还有另一件我遗失的文章。有什么想法吗?感谢

6 个答案:

答案 0 :(得分:46)

我有类似的错误。我正在使用MAMP,解决了我的问题是:

  1. 在/ var / mysql中创建符号链接(如果目录不存在,则创建目录)
  2. cd / var / mysql&amp;&amp; sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock

答案 1 :(得分:9)

对于正在寻找XAMPP解决方案的用户(在Mac OS X上测试和使用过),

打开终端并创建符号链接:

sudo mkdir /var/mysql
cd /var/mysql
sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

答案 2 :(得分:6)

搜索后,我发现了这篇文章:

Setting up Laravel on a Mac php artisan migrate error: No such file or directory

我添加

'unix_socket' => '/tmp/mysql.sock’,

到我的mysql数组中的database.php,它工作正常。不确定为什么会起作用,但确实如此。

答案 3 :(得分:4)

我这样修好了。只需加一条线。 在laravel项目中 APP =&GT;配置=&GT; database.php中 更新
连接=&GT; MySQL的 严格添加以下行后

'unix_socket' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"

样品: -

'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
            'unix_socket' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"
        ],

答案 4 :(得分:0)

这件事发生在我身边,我的应用程序(Laravel)昨天工作正常并且今天因此错误而丢弃(SQLSTATE [HY000] [2002]没有这样的文件或目录)。

在检查我的配置文件没有损坏后,我连接到我的控制面板(我正在使用VPS)并重新启动MySQL服务器。这就是诀窍,一切都恢复了。

答案 5 :(得分:0)

找到Ampps用户的解决方案:
我有同样的问题,我做了很多搜索,但直到我查看我的MySql配置文件后无法解决问题。 在我的配置文件中,套接字在第21行,路径为
“/Applications/AMPPS/var/mysql.sock”

在Ampps应用程序中,单击MySql选项卡,然后单击配置按钮。

您还可以在“/ Applications / AMPPS / mysql / etc”文件夹

中找到配置文件

所以我只是添加了 'unix_socket'=&gt; '/Applications/AMPPS/var/mysql.sock',
到我在mysql数组中的database.php,它对我有用 主机线后。我已经使用localhost和127.0.0.1进行了测试,两者都有效
希望它也适合你。

相关问题