我最初在Laravel 4.2中开发我的应用程序,但后来决定将其移至5.0版本,以便它涵盖5.0比4.2更多的变化和优势。
我试图运行我的migratiosn,但我得到的错误:
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
我研究了一下,注意到它是如何,因为我运行的MAMP为我的服务器,而不是流浪汉和宅基地。我不是在抨击这两个的用途,但在这一点上,我觉得更舒适的MAMP,直到它失败了我。我之所以知道它的MAMP是因为需要声明要使用的unix套接字值。
现在,在我的应用程序的4.2版本中,我有以下内容:
'mysql' => array(
'driver' => 'mysql',
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
'host' => getenv('DB_HOST'),
...
),
在我的Laravel 5.0版本中,我使用.env文件作为我的环境变量,但我不确定如何才能让它知道使用unix套接字值。
有人能提示我如何将其应用到新版本中,或者有更好的方法将其添加到设置中,以便我不必这样做吗?
6条答案
按热度按时间f2uvfpb91#
试试这个:
在.env中添加
zxlwwiss2#
虽然是个老问题,但仍然可以帮助别人。所以添加答案。
甚至有一个简单的解决方案。将此添加到ur.env文件
w6mmgewl3#
在laravel 5.5中,unix_socket更改为DB_SOCKET
内部.env文件:
在config/database.php中:
wh6knrhe4#
谢谢,帮助我修复迁移问题,使用:
内部.env文件:
在config/database.php中:
另外,不要忘记添加到app/Providers/AppServiceProviders.php:
rta7y2nd5#
在.env文件中,只需简单地将其添加到数据库变量旁边
e37o9pze6#
我创建了一个StackOverflow帐户,只是为了回答这个问题,也许可以帮助防止有人经历我所经历的痛苦。
我在网上找到的答案包括将127.0.0.1更改为localhost,将端口从3306更改为33060,反之亦然,以及确保unix_socket正确。
解决我的问题的方法正在改变:
到
我希望这对外面的人有帮助。我花了4个小时才找到这个痛苦而明显的解决方案...结果发现1min29s进入了一个obscure YouTube video,浏览量不到1000次。