私人领地

Swoft-Api项目部署八:主从数据库配置

手动档模式

手动模式需要xxx.com?db=1、xxx.com?db=2、xxx.com?db=3 这种方式来切换1、2、3数据库。操作权在用户手上。使用并不太方便。

手册地址:http://swoft.io/docs/2.x/zh-CN/db/selectDb.html

 

自动档模式:推荐使用

手册地址:http://swoft.io/docs/2.x/zh-CN/db/setting.html

1.bean配置

复制代码
#不能写成db_rw
'db' => [
        'charset'  => 'utf8mb4',
        'prefix'   => 'z_',
        'config'   => [
            'collation' => 'utf8mb4_unicode_ci',
            'strict'    => true,
            'timezone'  => '+8:00',
            'modes'     => 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
        ],
        'writes' => [
            [
                'dsn'      => 'mysql:dbname=iot2com;host=127.0.0.1:3306',
                'username' => 'xxx',
                'password' => '123456',
            ]
        ],
        'reads'  => [
            [
                'dsn'      => 'mysql:dbname=iot2com1;host=127.0.0.1',
                'username' => 'xxx',
                'password' => '123456',
            ],
            [
                'dsn'      => 'mysql:dbname=iot2com2;host=127.0.0.1',
                'username' => 'xxx',
                'password' => '123456',
            ]
        ]
    ],
复制代码

 

2.控制器调用

读:

/**
     * @RequestMapping()
     * */
    public function t30(Request $request){
        $result = DB::table('log_system')->first();
        print_r($result);
    }

每次刷新页面都显示不同数据,实现自动切换库,数据显示如下

 

 

 写:

复制代码
/**
     * @RequestMapping()
     * */
    public function t33(){
        $data= [
           'title'=>'44444'
        ];
        $result = DB::table('log_system')->insert($data);
        print_r($result);
    }
复制代码

自动插入主库iot2com

 

总结,自动档模式,配置好bean,在使用增、更、删 会自动切换到writes库,查会切换到reads库。完美实现切库动作

posted @   狂奔的蜗牛Snails  阅读(261)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2016-09-03 thinkphp 3.2 join
2013-09-03 ajax传输 基础一
2013-09-03 获取ip的ip138.com
点击右上角即可分享
微信分享提示