如何在 Laravel 中连接多个 MySQL 数据库

第一步、定义数据库链接

config/database.php

<?php
return [

    ‘default‘ => ‘mysql‘,

    ‘connections‘ => [

        # 主要数据库连接
        ‘mysql‘ => [
            ‘driver‘    => ‘mysql‘,
            ‘host‘      => ‘host1‘,
            ‘database‘  => ‘database1‘,
            ‘username‘  => ‘user1‘,
            ‘password‘  => ‘pass1‘,
            ‘charset‘   => ‘utf8mb4‘,
            ‘collation‘ => ‘utf8mb4_unicode_ci‘,
            ‘prefix‘    => ‘‘,
        ],

        # 第二个链接
        ‘mysql2‘ => [
            ‘driver‘    => ‘mysql‘,
            ‘host‘      => ‘host2‘,
            ‘database‘  => ‘database2‘,
            ‘username‘  => ‘user2‘,
            ‘password‘  => ‘pass2‘,
            ‘charset‘   => ‘utf8mb4‘,
            ‘collation‘ => ‘utf8mb4_unicode_ci‘,
            ‘prefix‘    => ‘‘,
        ]
    ],
];

第二步、连接第二个数据库

我们已经成功配置了第二个数据库链接,接下来讲解几种连接的方法。

1. Schema 表结构更改

在代码迁移时,可以使用 Schema 提供的 connection() 方法:

Schema::connection(‘mysql2‘)->create(‘some_table‘, function($table)
{
    $table->increments(‘id‘):
});

2. Query 数据库查询

同样的,数据库查询构造器里提供了一个 connection() 方法:

$users = DB::connection(‘mysql2‘)->select(...);

3. Eloquent 数据模型

使用 $connection 属性来设置默认的连接:

<?php

class SomeModel extends Eloquent {

    protected $connection = ‘mysql2‘;

}

你可以可以使用 setConnection 来动态设置连接:

<?php

class SomeController extends BaseController {

    public function someMethod()
    {
        $someModel = new SomeModel;

        $someModel->setConnection(‘mysql2‘);

        $something = $someModel->find(1);

        return $something;
    }

}

或者使用 on() 方法:

$someModel->on(‘mysql2‘)->find(1);

原文地址:https://www.cnblogs.com/mouseleo/p/10029948.html

时间: 11-28

如何在 Laravel 中连接多个 MySQL 数据库的相关文章

如何在Eclipse中连接源码

最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要.有的时候代码的可维护.可重用.可扩展确实胜过单纯的算法效率高.所以拾起大牛书籍<大话设计模式>同时参考网上诸大牛的博客,开始我的设计模式之旅.由于平时编程时用C/C++,现在是Java,也练练Java语法. 今天先介绍一下命令模式. 概念: 命令模式(Command):将一个请求封装成一个对象,从而使你可用不同的请求对象对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作.

maven项目中连接sqlserver和mysql的区别

maven项目中,sql和mysql连接所需加载的包与jdbc.properties中的写法是不一样的 对于mysql: jdbc.properties的写法: jdbc.driverClassName=com.mysql.jdbc.Driver -- mysql驱动 jdbc.url=jdbc\:mysql\://localhost\:3306/workloads?useUnicode=true&characterEncoding=utf-8 -- 具体数据库信息,并设置编码 jdbc.use

黄聪:NaviCat通过Http方式连接服务器的MySQL数据库(转)

首先到NaviCat官网上去下载最新版本的NaviCat.安装完成后,打开NaviCat,如下图所示: 然后点击左上角的连接,弹出新键连接信息,如下图所示: 在主机名IP地址那里填写LocalHost. 用户名与密码一栏则填写你所在的数据库用户名与密码. 这时候还不能连接数据库的,需要通过Http通道的形式进行数据库连接. 点击连接属性标签栏中的Http,如下图所示: 勾选使用Http通道后,在通道地址一栏输入你的网址与后台文件地址. 例如:http://www.google.cn/databa

修改mysql中root出错导致mysql数据库消失解决方法

今天在更新ROOT密码时出错 update user set password='123456' where user ="root"  这样写是错的 应该为update user set password = password ('123456') where user = "root" 错误操作之后,导致mysql数据库消失了. 解决方法: 关闭/etc/init.d/mysqld stop 然后,usr/bin/mysqld_safe --skip-grant

如何在 Eclipse 中连接源码

1:首先在window 中 打开首选项(preferences) 找到如下java -- 已安装的JRE 2:双击它 3:找到这里: 4:点击源代码附件 5:找到jdk安装包下的src.zip文件 6:一路点击完成就可以了

windows连接mac的mysql数据库

因为用mac的连接数据库软件导入数据特别慢,想使用windows的工具去导入数据. 1.在mac上先安装好mysql. 2.在虚拟机中的win安装好mysql. 3.在虚拟机中的mysql创建远程登陆用户并且授权. -  > grant all PRIVILEGES on test_db.* to [email protected]'192.168.1.123'  identified by '123'; 如下: test_db: 上面的语句表示将 test_db 数据库的所有权限授权给 roo

SpringMVC框架简单实现上传Excel文件,并将Excel中的数据导入mySQL数据库

第一步 配置DispathcherServlet文件 第二步 配置applicationContext文件 第三步 在index.jsp中 第四步 在HelloSpringmvc.java中写入方法 第五步:与数据库进行连接 第六步 mySQL实体类 第七步 操作excel表 第八步 Dao文件 第九步 测试

R语言使用RMySQL连接及读写Mysql数据库

简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64 系统编码:LANG=zh_CN.UTF-8(中文UTF-8格式) mysql版本号:mysql  Ver 14.14 Distrib 5.1.73, forredhat-linux-gnu (x86_64) using readline 5.1 安装mysql 1.      查看是否安装 yum list installe

Spring Boot项目中使用jdbctemplate 操作MYSQL数据库

不废话,先来代码 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

本地计算机如何连接阿里云Mysql数据库

以下方案仅针对Windows系统 第一种.监听地址配置错误解决方法: 检查mysql服务端口(默认为3306)是否正常监听在127.0.0.1上,如果监听在127.0.0.1上那只允许服务器本身访问的,其他地址是访问不了的. 默认的数据目录C:\ProgramData\MySQL\MySQL56下,有一个my.ini文件,将bind-address = 127.0.0.1参数,更改为bind-address = 0.0.0.0 或注释此行,或修改mysql访问端口 第二种.被防火墙阻拦解决方法: