1
php artisan migrate:install

{"error":{"type":"ErrorException","message":"PDO::__construct(): [2002] Connection refused (trying to connect via tcp:\/\/127.0.0.1:3306)","file":"\/Applications\/MAMP\/htdocs\/DRCSports\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connectors\/Connector.php","line":47}}

在我的 database.php 中,我已将信息更新为 mysql

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

我不确定我是否正确理解了错误,但对我来说,我的 laravel 似乎没有正确连接到 mysql。如果是这种情况,我不知道如何解决它。

4

7 回答 7

8

问题是 mysql 在端口 8888 上运行,而 Laravel 的默认端口值为 3306(因为它是 mysql 服务器的默认端口)。

解决方案是将 'port' 键添加到数组中(例如:'port' => 8888),它会完成工作。

于 2013-06-03T20:26:17.740 回答
2

这就是我所做的......在 /app/config/app.php

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost:8889',
            'database'  => 'pic',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',

        ),

并在 php 代码的底部

'redis' => 数组(

    'cluster' => false,

    'default' => array(
        'host'     => '127.0.0.1',
        'port'     => 8888,
        'database' => 0,
    ),

),

它必须工作......

于 2014-08-29T05:42:24.720 回答
0

当我在 3306 以外的端口上使用 MySQL 时,我遇到了问题(Laravel 4)。

浏览器运行的应用程序需要以下 app/config/database 语法:

'mysql' => array(
        ...
    'host' => 'localhost',
    'port' => '8889',
        ...
)

虽然命令行运行工匠需要以下语法:

'mysql' => array(
        ...
    'host' => 'localhost:8889',
        ...
)

此处描述了该问题:
https ://github.com/laravel/laravel/issues/1182

大多数文章都建议使用 Laravel 环境的解决方法,但它会导致重复的配置文件并违反 DRY 原则(不要重复自己),所以这里有另一种选择:

在 app/config/database.php 的顶部:

$my_hostname = 'localhost';
$my_port     = '8889';
$my_database = 'database';
$my_username = 'username';
$my_password = 'password';

if (App::runningInConsole()) {        // artisan runs from the command line
    // change 'localhost' to 'localhost:8889'
    $my_hostname = $my_hostname.':'.$my_port;
}

再往下:

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => $my_hostname,
    'port'      => $my_port,
    'database'  => $my_database,
    'username'  => $my_username,
    'password'  => $my_password,
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

干杯

于 2013-09-08T01:08:38.803 回答
0

更改 config/database.php 和 .env 文件中的数据库信息。

于 2015-08-04T07:29:31.880 回答
0

确保编辑“.env”文件的这一部分。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=root

这对我有用。

于 2017-07-17T09:06:11.037 回答
0

我做了这些改变并且像冠军一样工作:

在 database.php : host : localhost:8889 Port: 8889 并且我的 mamp 有密码所以我有两种方法可以将该密码放在 database.php 文件或 .env 文件中我将密码 '' 值更改为 'forge ' 然后顺便在 .env 文件中使用我的 MAMP 密码,您可以在端口选项卡中的 MAMP 应用程序中看到有关 MAMP 的具体信息(MySQL 之一)

于 2017-06-24T21:36:21.753 回答
-1

我想你可以通过在 app/config/database 语法中添加以下代码来解决这个问题:

'mysql' => array(
    ...

    'pconnect' => 'TRUE',
    ...
)
于 2014-04-07T12:03:28.660 回答