laravel 操作多数据库总结

读写分离
  • env配置
DB_CONNECTION=mysql
DB_HOST=xxxxxx
DB_PORT=xxx
DB_DATABASE=xx
DB_USERNAME=xxxx
DB_PASSWORD=xxxx DB_WRITE_CONNECTION=mysql
DB_WRITE_HOST=xxx
DB_WRITE_PORT=3306
DB_WRITE_DATABASE=xxx
DB_WRITE_USERNAME=xx
DB_WRITE_PASSWORD=xxx
  • database.php配置
'mysql' => [
'driver' => 'mysql',
'database' => 'test',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'strict' => false, // MySQL数据库严格模式,开启后,如果没有默认值会报错,不开启会自动填充一个默认值
'read' => [
[
'host' => '127.0.0.2',
'port' => 3307
],
[
'host' => '127.0.0.3',
'port' => 3308
]
],
'write' => [
'host' => '127.0.0.1',
'port' => 3306,
]
],
  • 读、写库选择
  • 如果不手动选择的话,数据库会自动判断读写库的选择。
DB::connection('mysql::write')->table('tablename')->find(1); //手动选择写库
DB::connection('mysql::read')->table('tablename')->find(1); //手动选择读库
多数据库
  • 默认使用mysql这个数据库
  • database.php配置
        'mysql1' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'unix_socket' => env('DB_SOCKET'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
'mysql2' => [
'driver' => 'mysql',
'host' => env('DB_WRITE_HOST' ),
'port' => env('DB_WRITE_PORT'),
'database' => env('DB_WRITE_DATABASE'),
'username' => env('DB_WRITE_USERNAME', 'forge'),
'password' => env('DB_WRITE_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
  • 方式一:model配置
class OrderFrom extends Model
{ /**
* The table associated with the model.
*
* @var string
*/
protected $connection='mysql2'; //这里设置库
protected $table = 'yd_order_from'; }
  • 方式二:可以不再model中配置,在使用的时候,通过$orderFrom->setConnection('mysql2')方法来选择数据库。

laravel 操作多数据库总结的更多相关文章

  1. laravel-- 在laravel操作redis数据库的数据类型(string、哈希、无序集合、list链表、有序集合)

    安装redis和连接redis数据库 在controller头部引入 一.基本使用 public function RedisdDbOne() { // 清空Redis数据库 Redis::flush ...

  2. [转]Laravel 4之数据库操作

    Laravel 4之数据库操作 http://dingjiannan.com/2013/laravel-database/ 数据库配置 Laravel数据库配置在app/config/database ...

  3. laravel操作Redis排序/删除/列表/随机/Hash/集合等方法全解

    Song • 3563 次浏览 • 0 个回复 • 2017年10月简介 Redis模块负责与Redis数据库交互,并提供Redis的相关API支持: Redis模块提供redis与redis.con ...

  4. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  5. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  6. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  7. SQL数据库添加新账号,只操作指定数据库

    思路: 1.创建数据库服务器登录用户 2.创建指定数据库的用户,并且和服务器用户联系起来 3.给数据库的用户添加角色 代码实现: 1.创建名为login的服务器登录用户dba,尼玛dbpwd,默认数据 ...

  8. ASP.NET操作ORACLE数据库之模糊查询

    ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

  9. 通过泛型数据,操作SQL数据库

    本人在操作数据库的时候,采用将对象的形式操作传入数据库,经过大量百度和朋友帮助,总结出如下两个接口.用于插入数据,提取数据. 要这样操作的前提条件,就是类名和表名一致,类字段和表字段一致就可以了 // ...

随机推荐

  1. markdown color

    深青色 深蓝色 seagreen darkgreen indianred cornflowerblue lightskyblue coral lightcoral darkorange

  2. Caffe源码-几种优化算法

    SGD简介 caffe中的SGDSolver类中实现了带动量的梯度下降法,其原理如下,\(lr\)为学习率,\(m\)为动量参数. 计算新的动量:history_data = local_rate * ...

  3. Oracle和可视化视图工具教程

    Oracle数据库安装教程 作者:黑小子-余 Qq:2931445528 微信:Y2931445528 可以找我,我有Oracle数据库安装包及工具   命令: Sqlplus /nolog Conn ...

  4. 优雅的使用BeanUtils对List集合的操作

    摘要 在业务员流程的时候,我们在Entity.Bo.Vo层数据间可能经常转换数据,Entity对应的是持久层数据结构(一般是数据库表的映射模型).Bo对应的是业务层操作的数据结构.Vo就是Contro ...

  5. 解决Coursera视频无法观看的三种方法(亲测有效)

      ​   最近在coursera上课时出现了视频黑屏,网页缓冲,无法观看等问题,经过查询发现很多人也有同样的问题.对于不同的原因,一般来说解决方法也不同.这里有三种办法,大家可以挨个尝试,肯定有一个 ...

  6. 洛谷$P4149\ [IOI2011]\ Race$ 点分治

    正解:点分治 解题报告: 传送门$QwQ$ 昂先不考虑关于那个长度的限制考虑怎么做? 就开个桶,记录所有边的取值,每次加入边的时候查下是否可行就成$QwQ$ 然后现在考虑加入这个长度的限制?就考虑把这 ...

  7. 洛谷$P$4301 $[CQOI2013]$新$Nim$游戏 线性基+博弈论

    正解:线性基 解题报告: 传送门! 这题其实就是个博弈论+线性基,,,而且博弈论还是最最基础的那个结论,然后线性基也是最最基础的那个板子$QwQ$ 首先做这题的话需要一点点儿博弈论的小技能,,,这题的 ...

  8. 类加载器在Tomcat中的应用

    之前有文章已经介绍过了JVM中的类加载机制,JVM中通过类加载加载class文件,通过双亲委派模型完成分层加载.实际上类加载机制并不仅仅是在JVM中得以运用,通过影响字节码生成和类加载器目前已经有了许 ...

  9. [转载] Windows系统批处理延迟方法

    小贴士:方法四 亲测有效,因为当时对于精确度要求不是很高,所以没有具体测试它的精确度.其他方法没有测过,用到的时候再测吧! 批处理延时启动的几个方法 方法一:ping 缺点:时间精度为1秒,不够精确 ...

  10. springboot2 整合mongodb

    在springboot2中使用MongoDB 1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId ...