我克隆了一个基于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
请帮帮忙?
答案 0 :(得分:2)
XAMP,MAMP或WAMP等工具都有自己的PHP和MySQL二进制文件,并且不使用可能的全局安装版本。
我猜你使用的是安装了XAMP的MySQL,所以套接字不是
默认的一个,您可以在您的系统中搜索,但在XAMP中搜索。
您有两种选择:
php.ini
以设置pdo_mysql.default_socket
或mysqli.default_socket
到XAMP安装中的MySQL套接字
为了你的全局PHP二进制文件将能够连接你的XAMP
MySQL版本。推荐的选项是第二个,因为XAMP的PHP二进制文件是 已配置为使用正确的MySQL套接字,但不需要 更新任何配置文件。
我在下面解释如何找到MySQL套接字以及如何找到PHP二进制目录。
找到MySQL套接字路径:
在您的Web服务器目录中编写以下代码(通常为www/
,htdocs/
或public_html/
)
<?php
//phpinfo.php
phpinfo();
在网络浏览器中打开网址http://localhost/phpinfo.php
(改编
主机名(如果需要)。
根据您使用的PHP扩展连接到数据搜索
您可以pdo_mysql.default_socket
或mysqli.default_socket
找到套接字文件的路径。
请参阅phpinfo()。
查找PHP二进制目录:
在Web服务器目录中编写以下代码
<?php
//bindir.php
echo PHP_BINDIR;
在网络浏览器中打开网址http://localhost/bindir.php
。
感谢this answer提供的信息 请参阅documentation有关预定义常量的信息。
在您的情况下,托管PHP的目录是/Applications/XAMPP/bin/
,所以你
应该运行命令:
/Applications/XAMPP/bin/php artisan migrate
答案 1 :(得分:0)
您是否有.env文件,其中包含一个存在的数据库以及该数据库的授权用户和密码?