laravel配置多数据库连接,数据库连接报错

问题

在laravle框架中配置了多数据库连接,但是一直连接不上,报如下错误:

Database connection [{$name}] not configured。

问题原因:

查了好多资料,才发现原来laravel 框架会把配置文件缓存,目的是

为了给应用加速,使用 Artisan 命令 config:cache 将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而可以被框架快速加载。
应用一旦上线,就要运行一次 php artisan config:cache,但是在本地开发时,没必要经常运行该命令,因为配置值经常需要改变。

解决办法:

php artisan config:clear 可以清除配置文件。。。

配置变了,可以使用配置中的新配置了。

配置多数据库方法:

1.在.env 文件中添加数据库配置:

上面的是默认的配置,下面的是新添加的

2.在config/database.php文件中,

connections数组中添加第二个数据库配置

添加第二个数据库连接配置:

        'mysql2' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE_MAYI', ''),
            'username' => env('DB_USERNAME_MAYI', ''),
            'password' => env('DB_PASSWORD_MAYI', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
           'prefix' => env('DB_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'),
            ]) : [],
        ],

3.创建model:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class PartnerMayi extends Model
{

    protected $connection = 'mysql2';
    protected $table = 'partner';

    protected $fillable = [

    ];
}

4.调用model数据

$info =  PartnerMayi::where('id',1)->first();

打印数据,结果出来,连接成功

猜你喜欢

转载自blog.csdn.net/hechenhongbo/article/details/111555730