如何使用laravel框架5.1连接3308端口的MySQL数据库?

问题描述 投票:0回答:2

我第一次尝试使用 laravel。我打开了config目录中的database.php文件,然后更新了mysql配置。

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

我明白了 [PDO异常] 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?

php mysql laravel laravel-5
2个回答
3
投票

我知道你已经弄清楚了,但在你提供的所有尝试中,你给出的答案并不明确。对于那些展望未来的人,以下是您所需要的:

(假设 Laravel 5.1 使用 Postgres DB,但应该适用于 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'  => [
        PDO::ATTR_PERSISTENT => env('DB_PERSISTENT', false)
    ]
]

然后在您的

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

DB_PORT=32769

1
投票

我解决了这个问题。 文件 .env 需要使用正确的信息进行更新

© www.soinside.com 2019 - 2024. All rights reserved.