Artisan将无法连接到mysql - Laravel 4.2

问题描述 投票:1回答:2

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

请帮忙?

php mysql laravel
2个回答
2
投票

XAMPMAMPWAMP这样的工具有自己的PHP和MySQL二进制文件,并且不使用潜在的全局安装版本。 我猜您使用的是安装了XAMP的MySQL,因此套接字不是您可以在系统中搜索的默认套接字,而是XAMP中的套接字。

您有两种选择:

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

推荐的选项是第二个,因为XAMPp 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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.