[PHP] Larval 主从读写分离配置
原文链接
摘要: 在DB的连接工厂中找到以下代码 .../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php /** * Get the read configuration for a read / write connection.
在DB的连接工厂中找到以下代码
.../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php
/** * Get the read configuration for a read / write connection. * * @param array $config * @return array */
protected function getReadConfig(array $config)
{ $readConfig = $this->getReadWriteConfig($config, 'read'); return $this->mergeReadWriteConfig($config, $readConfig);
} /** * Get a read / write level configuration. * * @param array $config * @param string $type * @return array */
protected function getReadWriteConfig(array $config, $type)
{ if (isset($config[$type][0])) { return $config[$type][array_rand($config[$type])]; } return $config[$type];
} /*** Merge a configuration for a read / write connection.** @param array $config* @param array $merge* @return array*/
protected function mergeReadWriteConfig(array $config, array $merge)
{return array_except(array_merge($config, $merge), ['read', 'write']);
}
工厂类通过随机获取读DB配置来进行读取操作,由此可推出DB的配置应该如下
'mysql' => [ 'write' => [ 'host' => '192.168.1.180', ], 'read' => [ ['host' => '192.168.1.182'], ['host' => '192.168.1.179'], ], 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '',
]
加强版,支持多主多从,支持独立用户名和密码,配置如下
'mysql' => [ 'write' => [ ['host' => '192.168.1.180','username' => '','password' => '',], ], 'read' => [ ['host' => '192.168.1.182','username' => '','password' => '',], ['host' => '192.168.1.179','username' => '','password' => '',], ], 'driver' => 'mysql', 'database' => 'database', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '',
]
验证
开启MySQL的general-log,通过tail -f的方式监控log变化来确定配置是否生效
[PHP] Larval 主从读写分离配置相关推荐
- Larval 主从读写分离配置
在DB的连接工厂中找到以下代码 .../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.ph ...
- Redis主从读写分离配置
环境描述: 主redis:192.168.10.1 6379 从redis:192.168.10.2 6380 一.主从配置 1.将主从redis配置文件redis.conf中的aemonize no ...
- MyCat分布式数据库集群架构工作笔记0011---高可用_主从读写分离配置
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上一节咱们配置好了主从复制,确认主从复制,要在从机上执行命令, 显示slave_io_runnin ...
- Amoeba实现mysql主从读写分离
Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...
- 1051 mysql 主从_mysql配置主从读写分离的一些想法
这篇文章不是记录如何配置读写分离的技术文章,关于如何使用变形虫进行读写分离配置的文章网上一搜一大把.这篇文章旨在描述在实施主从读写分离过程中可能会遇到的问题,以及一些解决方案和想法. 数据库引擎的选择 ...
- MySQL的主从配置+SpringBoot的MySQL读写分离配置
MySQL的主从复制 点击前往查看MySQL的安装 1.主库操作 vim /etc/my.cnf 添加如下配置 log-bin=mysql-bin #[必须]启用二进制日志 server-id=128 ...
- 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现...
回到目录,完整代码请查看(https://github.com/cjw0511/NDF.Infrastructure)中的目录: src\ NDF.Data.EntityFramework\Maste ...
- Mysql一主多从和读写分离配置简记
Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报 分类: 数 ...
- mysql 配置文件在哪_MySQL+MyCat分库分表 读写分离配置
一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件,运行在代码应用和MySQL数据库之间的应用. 前身: corb ...
最新文章
- 软件工程第二周阅读作业
- python绘制灰度图片直方图-用python简单处理图片(5):图像直方图
- 一文弄懂神经网络中的反向传播法
- 2021年云南高考查询成绩时间,2021年云南高考成绩排名及成绩公布时间 什么时候出来...
- 枚举类 - Java面向对象编程
- 用友通ERP客户端报无法登陆错
- Python外(4)-读写mat文件
- android环境搭建—— 工欲善其事必先利其器
- 通过ida dump Uinity3D的加密dll
- 经典排序算法(二)--桶排序Bucket Sort
- 网易校招内推-2023届技术类岗位
- 导航栏渐变方案收录一
- 在线查看计算机配置,怎样查看电脑配置信息?
- 你为什么总是爱拖延?这个我知道
- windows下图像标注软件Labelme安装及使用教程
- 终端 常用移动光标的快捷键
- 开发三星GALAXY Tab应用程序
- Ti ub954/953 Sensor调试心得
- Maven 入门教程
- 【cmake学习】cmake 引入第三方库(头文件目录、库目录、库文件)
热门文章
- IB中文:文学作品中幽默手法的表现方式(下)
- qq发消息时键盘挡住了_QQ的说说被键盘挡住了怎么办
- Could not build wheels for xx which use PEP 517 and cannot be installed directly
- 极速接入港交所OMD-C 港股L2数据,JAR WebSocket API获取数据
- 京东回归港股不是上岸,刘强东还有更大的杀招!
- 闪迪u盘不能识别好办法_SanDisk U盘无法识别解决
- 《变形金刚ONLINE》策划案
- 注意力CBMA到底在网络中做了什么事
- arcengine java_浅析 ArcEngine Java - EngineViewer 例子
- 教程篇(7.0) 11. FortiGate安全 入侵防御和拒绝服务 ❀ Fortinet 网络安全专家 NSE 4