【问题标题】:Artisan won't connect to mysql - Laravel 4.2Artisan 无法连接到 mysql - Laravel 4.2
【发布时间】:2023-03-16 16:55:02
【问题描述】:

我克隆了一个基于 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

请帮忙?

【问题讨论】:

  • @Phil,我可以使用php artisan migrate --env=production 进行迁移,但我无法运行该应用程序。当我运行命令php artisan serve 并重新加载浏览器时,我得到 [PDOException] SQLSTATE[HY000] [2002] No such file or directory
  • 克隆后你做了什么也分享所有步骤?
  • @C2486,我不明白你的说法。但你是说我克隆后的步骤?检查我的更新
  • 你在使用 Xamp 的 MySQL 套接字吗?为此,您应该使用 Xamp 的 PHP 版本,而不是您在系统上全局安装的版本。

标签: php mysql laravel


【解决方案1】:

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

你有两个选择:

  1. 更新您的全局 PHP 的 php.ini 以设置 pdo_mysql.default_socketmysqli.default_socket 到 XAMP 安装中的 MySQL 套接字 为了您的全局 PHP 二进制文件将能够连接您的 XAMP MySQL 版本。
  2. 使用 XAMP 的 PHP 二进制文件(推荐)。

推荐的选项是第二个,因为 XAMP 的 PHP 二进制文件是 已经配置为使用正确的 MySQL 套接字并且不需要 更新任何配置文件。

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

查找 MySQL 套接字路径:

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

    <?php
    //phpinfo.php
    phpinfo();
    
  • 在您的 Web 浏览器中打开 URL http://localhost/phpinfo.php(适应 主机名(如果需要)。

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

phpinfo()

找到 PHP 二进制目录:

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

    <?php
    //bindir.php
    echo PHP_BINDIR;
    
  • 在您的 Web 浏览器中打开 URL http://localhost/bindir.php

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

感谢this answer 提供信息。
请参阅documentation 了解预定义常量。

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

/Applications/XAMPP/bin/php artisan migrate

【讨论】:

  • 我不能在我的 Xampp 文件夹中使用 /opt/lampp/bin/php
  • 您使用的是什么操作系统?在 OpenSuse 上,我刚刚安装了 Xamp,并且 PHP 的路径是正确的。
  • 使用 OSX。特别是 macOS 版本。但是当我去 Xampp 文件时,我没有看到 opt
  • @XamarinDevil 在 OSX 上尝试/Applications/XAMPP/bin/php?否则,在您的网络服务器上使用 phpinfo(),它会显示 PHP 路径。
  • 是的。现在我找到了这个Applications/XAMPP/bin/php
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 2019-02-25
    • 1970-01-01
    • 2017-01-27
    • 2020-03-19
    • 2017-05-02
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多