首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 4迁移:安装ErrorException

Laravel 4迁移:安装ErrorException
EN

Stack Overflow用户
提问于 2013-06-04 03:34:27
回答 7查看 4.2K关注 0票数 1
代码语言:javascript
复制
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中。

代码语言:javascript
复制
'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。如果是这样的话,我不知道如何修复它。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-06-04 04:26:18

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

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

票数 8
EN

Stack Overflow用户

发布于 2014-08-29 13:42:25

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

代码语言:javascript
复制
'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost:8889',
            'database'  => 'pic',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',

        ),

在php代码的底部

“‘redis”=>数组(

代码语言:javascript
复制
    'cluster' => false,

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

),

它必须起作用。

票数 2
EN

Stack Overflow用户

发布于 2013-09-08 09:08:39

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

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

代码语言:javascript
复制
'mysql' => array(
        ...
    'host' => 'localhost',
    'port' => '8889',
        ...
)

而命令行运行artisan需要以下语法:

代码语言:javascript
复制
'mysql' => array(
        ...
    'host' => 'localhost:8889',
        ...
)

问题描述如下:

https://github.com/laravel/laravel/issues/1182

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

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

代码语言:javascript
复制
$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;
}

再往下:

代码语言:javascript
复制
'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'    => '',
),

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16904470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档