Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用laravel framework 5.1连接到端口3308上的MySQL数据库?_Php_Mysql_Laravel_Laravel 5 - Fatal编程技术网

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

Php 如何使用laravel framework 5.1连接到端口3308上的MySQL数据库?,php,mysql,laravel,laravel-5,Php,Mysql,Laravel,Laravel 5,我第一次尝试使用laravel。我选择了位于config目录中的database.php文件,然后更新了mysql配置 但每次我试着做这个命令 php artisan迁移:安装 我明白了 [例外情况] SQLSTATE[HY000][2002]无法建立连接,因为目标machi 她主动拒绝了 我必须让laravel以某种方式连接到另一个端口 我试过以下方法,但没有一种有效 'mysql' => [ 'driver' => 'mysql',

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

但每次我试着做这个命令 php artisan迁移:安装

我明白了 [例外情况] SQLSTATE[HY000][2002]无法建立连接,因为目标machi 她主动拒绝了

我必须让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'      => 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?

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

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

(这是假设Laravel 5.1使用Postgres DB,但应使用Laravel的替代版本和不同的数据库…此外,不要介意my database.php与您的数据库不同的替代/不同配置设置,这些是用于高级配置的。)

config/database.php
中添加一个
'port'
部分,如下所示:

        '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
中,您可以覆盖
端口
设置,如下所示:

DB_PORT=32769

考虑测试像PDO那样的连接,以查看连接是否以这种方式工作。如果有,请尝试最后一个答案中的建议(关于指定
unix\u socket
)。如果您确实在
.env
中设置了正确的
DB\u端口
,但Laravel拒绝使用该端口,并将
端口
配置设置为
tcp://172.17.0.2:3306
?有人见过这样的事吗?