【问题标题】:Laravel8 multi DB connectionLaravel 8 多数据库连接
【发布时间】:2021-05-27 19:50:02
【问题描述】:

我想在我的项目中连接postgresql和mysql。

.env 文件在下面

DB_CONNECTION=pgsql
DB_HOST=175.145.23.01
DB_PORT=5432
DB_DATABASE=test_local
DB_USERNAME=birgul_ayaz
DB_PASSWORD=h4CzT*tiCzr21


DB_CONNECTION_SECOND=test
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test_deneme
DB_USERNAME=root
DB_PASSWORD=''

config/database.php 在下面

第一个mysql连接:

'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'test_deneme'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

second=postgresql 连接

'pgsql' => [
    'driver' => 'pgsql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '5432'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'prefix_indexes' => true,
    'schema' => 'public',
    'sslmode' => 'prefer',
],

**当我在 Contoller 中使用 connection('test') 时。

$dd= DB::connection('test')->table('test_deneme')->user_name;` 

页面出现此错误 "SQLSTATE[08006] [7] 收到 SSL 协商的无效响应:Y (SQL: select * from "bo_session" where "id" = BVx6RU7dtpnIJjfPHRJrVf1RVMO7SR4c81Fkxp9n limit 1)"

如何解决这个问题??

【问题讨论】:

    标签: php mysql postgresql laravel-8


    【解决方案1】:

    在 .env 文件中,您正在定义 HOST、PORT、USERNAME 等的值。在您的 .env 文件中,您将使用 pgsql 值覆盖 mysql 值。

    .env

    ...
    DB_HOST=175.145.23.01
    DB_PORT=5432
    ...
    DB_HOST_SECOND=127.0.0.1
    DB_PORT_SECOND=3306
    ...
    

    config/database.php

    'mysql' => [
            ...
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            ...
    ],
    
    'pgsql' => [
        ...
        'host' => env('DB_HOST_SECOND', '127.0.0.1'),
        'port' => env('DB_PORT_SECOND', '5432'),
        ...
    ],
    

    【讨论】:

    • 当我写的时候。页面给出此错误找不到驱动程序(SQL:select * from bo_session where id = Sh4oLz4Ix3yrOBcKx5bgq5Yp0AkGSUKh28JRDNP9 限制 1)
    • 驱动名称应该是 mysql 或 pgsql ,见文档laravel.com/docs/8.x/database#configuration
    猜你喜欢
    • 2021-02-21
    • 2021-05-07
    • 2017-04-11
    • 2022-07-06
    • 2016-03-22
    • 1970-01-01
    • 2021-01-14
    • 2018-03-20
    • 2016-04-15
    相关资源
    最近更新 更多