Php SQLSTATE[HY000][2003]Can';t连接到';127.0.0.1';(61)误差Laravel 4.1

Php SQLSTATE[HY000][2003]Can';t连接到';127.0.0.1';(61)误差Laravel 4.1,php,mysql,laravel,laravel-4,Php,Mysql,Laravel,Laravel 4,我在Laravel 4.1的本地主机上收到以下错误(使用MAMP) 它指出: /Applications/MAMP/htdocs/crowdsets/laravel-master/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php 这就是它所指向的函数: public function createConnection($dsn, array $config, array $options)

我在Laravel 4.1的本地主机上收到以下错误(使用MAMP)

它指出:

/Applications/MAMP/htdocs/crowdsets/laravel-master/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php
这就是它所指向的函数:

public function createConnection($dsn, array $config, array $options)
    {
        $username = array_get($config, 'username');

        $password = array_get($config, 'password');

        return new PDO($dsn, $username, $password, $options);
    }
到目前为止,我还没有收到这个错误

我已经设置了本地环境和生产环境(默认设置)

在config/local/database.php中,我有:

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

这样的错误意味着服务器本身甚至无法访问。你是在MAMP中启动MySQL的吗

还有,你是如何开始MAMP的?使用标准MySQL
3306
端口?或者MAMP用于非管理员的替代端口:
8889

我打赌您的服务器正在运行,但正在尝试连接到
3306
,因此您需要将端口设置为
8889
。将您的配置更改为这样;注意添加了
端口
参数:

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'port'      => '8889',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

EDIT:我刚刚发现它解决了通过端口
8889
将Laravel连接到MAMP的问题。我猜mysql没有运行。这个问题似乎在这个问题线程中得到了解决。当我在当地的环境中工作时,我犯了这个错误。在本地环境中,数据库正在连接到默认端口,因此跳过了数组索引端口。在生产中设置了不同的端口。本地环境试图使用生产端口,因为本地环境中未定义的内容取自默认环境,并显示此愚蠢错误,未提及端口的任何细节:(这就是问题所在,但奇怪的是,我的应用程序似乎没有读取我设置的本地环境。对此有何想法?我不明白你所说的“我的应用程序没有读取我设置的本地环境”是什么意思。”如果问题解决了,不是阅读本地环境吗?也许你还有另一个问题,应该是另一个问题。对不起,我指的是环境配置。一个用于本地,一个用于生产。
'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'port'      => '8889',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),