使用MAMP的Laravel错误:Connector.php第55行中的PDOException:

时间:2016-11-19 22:35:45

标签: php mysql laravel laravel-5

我对laravel非常新,并且正在通过一些laracasts(目前是Fetching Data部分)。在实现数据库的时候,我会挂断电话。我没有使用Homebrew或Vagrant,我正在使用MAMP。我能够运行php artisan migrate来完成教程中的表格。现在(按照教程)当我转到localhost:8000 /卡时,我收到以下错误:

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,但仍然收到错误。

enter image description here

1 个答案:

答案 0 :(得分:1)

使用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,
    ],

你会很高兴。