我对 Laravel 非常陌生,正在研究一些 Laracast(目前是 Fetching Data 部分)。在实现数据库内容时,我陷入了困境。我没有使用 Homebrew 或 Vagrant,我使用的是 MAMP。我能够运行 php artisan migrate 来很好地创建教程中的表。现在(按照教程)当我转到 localhost:8000/cards 时,我收到以下错误:
PDOException in Connector.php line 55:
SQLSTATE[HY000] [2002] Connection refused
经过大量搜索后,我发现我需要编辑 .env 文件和 config/database.php 文件,这使我能够成功运行 php artisan migrate
。
这是我的 .env 文件:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=webapp
DB_USERNAME=root
DB_PASSWORD=root
这是我的database.php 文件:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '8889'),
'database' => env('DB_DATABASE', 'webapp'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
那么为什么我无法访问教程 url localhost:8000/cards?错误消息引用了自制程序,但我不使用我正在使用 MAMP。
Using this thread ,我已经尝试过 php artisan config:clear
我也尝试关闭并重新启动 MAMP 但仍然收到错误。
最佳答案
使用 MAMP,您需要使用 unix_socket
将其连接到 SQL。修改database.php
以添加套接字行,如下所示。
'mysql' => [
'driver' => 'mysql',
'unix_socket'=>'/Applications/MAMP/tmp/mysql/mysql.sock',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
你就可以开始了。
关于php - Laravel 使用 MAMP : PDOException in Connector. php 第 55 行时出错:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698670/