如何使用laravel framework 5.1连接到端口3308上的MySQL数据库?

时间:2015-07-22 21:57:40

标签: php mysql laravel laravel-5

我第一次尝试使用laravel。我选择了位于config目录下的database.php文件,然后更新了mysql配置。

但每次我尝试执行此命令 php artisan migrate:安装

我明白了   [PDOException]   SQLSTATE [HY000] [2002]因为目标机器人无法建立连接   ne积极拒绝它。

我必须让laravel以某种方式连接到另一个端口。

我尝试过以下操作,但都没有。

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', '10.15.1.5'),
        'port'      => '3308',
        'database'  => env('DB_DATABASE', 'mydb_dev'),
        'username'  => env('DB_USERNAME', 'user'),
        'password'  => env('DB_PASSWORD', 'pass'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

和这个

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', '10.15.1.5:3308'),
        'database'  => env('DB_DATABASE', 'mydb_dev'),
        'username'  => env('DB_USERNAME', 'user'),
        'password'  => env('DB_PASSWORD', 'pass'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

和这个

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', '10.15.1.5'),
        'port'      => env('DB_PORT', '3308'),
        'database'  => env('DB_DATABASE', 'mydb_dev'),
        'username'  => env('DB_USERNAME', 'user'),
        'password'  => env('DB_PASSWORD', 'pass'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

最后,我尝试了这个

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => '10.15.1.5:3308',
        'database'  => env('DB_DATABASE', 'mydb_dev'),
        'username'  => env('DB_USERNAME', 'user'),
        'password'  => env('DB_PASSWORD', 'pass'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

这给了我一个不同的错误

Access denied for user 'homestead'@'10.xxxxxx' (using password: YES)

我不确定用户homestead来自哪里。

如何告诉laravel在端口3308上连接到mysql?

2 个答案:

答案 0 :(得分:1)

我想出了这个问题。 需要使用正确的信息更新.env文件

答案 1 :(得分:0)

我知道你弄清楚了,但是在你提供的所有尝试中,你给出的答案并不清楚。对于那些展望未来的人来说,这就是你需要的:

(这是假设Laravel 5.1使用Postgres数据库,但是应该使用Laravel的备用版本,以及不同的数据库...也不要介意我的database.php具有的备用/不同配置设置,而不是你的,这些是高级配置。)

在您的'port'中添加config/database.php部分,如下所示:

        'pgsql' => [
        'read' => [
            'host' => env('DB_READ', 'localhost')
        ],
        'write' => [
            'host' => env('DB_WRITE', 'localhost')
        ],
        'port'      => env('DB_PORT', '5432'),
        'driver'   => 'pgsql',
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
        'schema'   => env('DB_SCHEMA', 'public'),
        'options'  => array(
            PDO::ATTR_PERSISTENT => env('DB_PERSISTENT', false),
        ),
    ],

然后在您的.env中,您可以覆盖port设置,如下所示:

DB_PORT=32769