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库。完美实现切库动作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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