我克隆了一个基于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
请帮忙?
像XAMP,MAMP或WAMP这样的工具有自己的PHP和MySQL二进制文件,并且不使用潜在的全局安装版本。 我猜您使用的是安装了XAMP的MySQL,因此套接字不是您可以在系统中搜索的默认套接字,而是XAMP中的套接字。
您有两种选择:
php.ini
,将pdo_mysql.default_socket
或mysqli.default_socket
设置为XAMP安装中的MySQL套接字,以便您的全局PHP二进制文件能够连接您的XAMP的MySQL版本。推荐的选项是第二个,因为XAMPp PHP二进制文件已经配置为使用正确的MySQL套接字而不需要更新任何配置文件。
我在下面解释如何找到MySQL套接字以及如何找到PHP二进制目录。
找到MySQL套接字路径:
www/
,htdocs/
或public_html/
)
<?php
//phpinfo.php
phpinfo();
http://localhost/phpinfo.php
(根据需要调整主机名)。pdo_mysql.default_socket
或mysqli.default_socket
的数据搜索,您将找到套接字文件的路径。找到PHP二进制目录:
<?php
//bindir.php
echo PHP_BINDIR;
http://localhost/bindir.php
。感谢this answer提供的信息。 有关预定义的常量,请参阅documentation。
在你的情况下托管PHP的目录是/Applications/XAMPP/bin/
所以你应该运行命令:
/Applications/XAMPP/bin/php artisan migrate
您是否有.env文件包含现有数据库以及该数据库的授权用户和密码?