多个数据库的配置与读写分离配置

未匹配的标注

多个数据库的配置与读写分离配置

学习链接

xueyuanjun.com/post/9692

配置多个数据库连接

如果我们的新老数据库使用的都是 MySQL 的话,可以在 config/database.php 的 connections 配置项中新增一个 MySQL 连接。 填入你的配置,然后env 也增加对应配置即可。

'mysql_old' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST_OLD', '127.0.0.1'),
    'port' => env('DB_PORT_OLD', '3306'),
    'database' => env('DB_DATABASE_OLD', 'forge'),
    'username' => env('DB_USERNAME_OLD', 'forge'),
    'password' => env('DB_PASSWORD_OLD', ''),
    'unix_socket' => env('DB_SOCKET_OLD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

如何指定新模型链接?

  1. orm
    protected $connection = 'mysql_old';

  2. DB
    $users = DB::connection('mysql_old')->select(...);

配置数据库读写分离连接

配置 数据库配置即可:
配置read write ,如果账号密码不同就单独配置。
例子如下:

'mysql' => [
    'driver' => 'mysql',
    'read' => [
        'host' => env('DB_HOST_READ', '127.0.0.1'),
        'username' => env('DB_USERNAME_READ', 'forge'),
        'password' => env('DB_PASSWORD_READ', ''),
    ],
    'write' => [
        'host' => env('DB_HOST_WRITE', '127.0.0.1'),
        'username' => env('DB_USERNAME_WRITE', 'forge'),
        'password' => env('DB_PASSWORD_WRITE', ''),
    ],
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

更多配置 如 stric 请参考文档。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~