Artisan无法连接到mysql - Laravel 4.2

时间:2018-03-03 19:09:51

标签: php mysql laravel

我克隆了一个基于laravel 4.2的项目。目前我的Xampp版本为7.0.13.1,php版本为7.1。

当我输入php artisan migrate时,它会给出一个错误[PDOException] SQLSTATE[HY000] [2002] No such file or directory,这意味着我的工匠没有连接到我在Xampp上运行的mysql。

在终端中,我尝试which php并获得/usr/local/php5/bin/php

这可能是我问题的原因吗?该路径没有指向我的Xampp版本7.0.13.1?

PS:克隆后,我按照github页面上的步骤进行了操作

composer install

$ php artisan migrate

$ php artisan db:seed

$ php artisan serve

请帮帮忙?

2 个答案:

答案 0 :(得分:2)

XAMPMAMPWAMP等工具都有自己的PHP和MySQL二进制文件,并且不使用可能的全局安装版本。
我猜你使用的是安装了XAMP的MySQL,所以套接字不是 默认的一个,您可以在您的系统中搜索,但在XAMP中搜索。

您有两种选择:

  1. 更新全局PHP php.ini以设置pdo_mysql.default_socketmysqli.default_socket到XAMP安装中的MySQL套接字 为了你的全局PHP二进制文件将能够连接你的XAMP MySQL版本。
  2. 使用XAMP的PHP二进制文件(推荐)。
  3. 推荐的选项是第二个,因为XAMP的PHP二进制文件是 已配置为使用正确的MySQL套接字,但不需要 更新任何配置文件。

    我在下面解释如何找到MySQL套接字以及如何找到PHP二进制目录。

    找到MySQL套接字路径:

    • 在您的Web服务器目录中编写以下代码(通常为www/htdocs/public_html/

      <?php
      //phpinfo.php
      phpinfo();
      
    • 在网络浏览器中打开网址http://localhost/phpinfo.php(改编 主机名(如果需要)。

    • 根据您使用的PHP扩展连接到数据搜索 您可以pdo_mysql.default_socketmysqli.default_socket 找到套接字文件的路径。

    请参阅phpinfo()

    查找PHP二进制目录:

    • 在Web服务器目录中编写以下代码

      <?php
      //bindir.php
      echo PHP_BINDIR;
      
    • 在网络浏览器中打开网址http://localhost/bindir.php

    • 写入托管PHP二进制文件的目录的路径。

    感谢this answer提供的信息 请参阅documentation有关预定义常量的信息。

    在您的情况下,托管PHP的目录是/Applications/XAMPP/bin/,所以你 应该运行命令:

    /Applications/XAMPP/bin/php artisan migrate
    

答案 1 :(得分:0)

您是否有.env文件,其中包含一个存在的数据库以及该数据库的授权用户和密码?