【问题标题】:In laravel how to create multiple database with table for multiple client?在 laravel 中如何为多个客户端创建带有表的多个数据库?
【发布时间】:2017-12-10 06:05:53
【问题描述】:

我想在我的系统中创建多个数据库。大多数情况下,数据库是 MySQL;但将来可能会有所不同,即管理员可以生成使用异构数据库系统源的此类报告。

return array(

    'default' => 'mysql',

    'connections' => array(

        # Our primary database connection
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'host1',
            'database'  => 'database1',
            'username'  => 'user1',
            'password'  => 'pass1'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        # Our secondary database connection
        'mysql2' => array(
            'driver'    => 'mysql',
            'host'      => 'host2',
            'database'  => 'database2',
            'username'  => 'user2',
            'password'  => 'pass2'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    ),
);

【问题讨论】:

    标签: php laravel-5


    【解决方案1】:

    你需要像这样在 In .env 和 config/database.php 中添加两个数据库

    .env

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=database1
    DB_USERNAME=root
    DB_PASSWORD=secret
    
    DB_CONNECTION_SECOND=mysql
    DB_HOST_SECOND=127.0.0.1
    DB_PORT_SECOND=3306
    DB_DATABASE_SECOND=database2
    DB_USERNAME_SECOND=root
    DB_PASSWORD_SECOND=secret
    In config/database.php
    

    config\database.php

    'mysql' => [
        'driver'    => env('DB_CONNECTION'),
        'host'      => env('DB_HOST'),
        'port'      => env('DB_PORT'),
        'database'  => env('DB_DATABASE'),
        'username'  => env('DB_USERNAME'),
        'password'  => env('DB_PASSWORD'),
    ],
    
    'mysql2' => [
        'driver'    => env('DB_CONNECTION_SECOND'),
        'host'      => env('DB_HOST_SECOND'),
        'port'      => env('DB_PORT_SECOND'),
        'database'  => env('DB_DATABASE_SECOND'),
        'username'  => env('DB_USERNAME_SECOND'),
        'password'  => env('DB_PASSWORD_SECOND'),
    ],
    

    【讨论】:

      【解决方案2】:

      我发现这篇文章解释了如何在 Laravel 中使用两个不同的数据库(完全可用于 Eloquent 模型):http://fideloper.com/laravel-multiple-database-connections

      【讨论】:

      • 其实我想在客户注册的时候随机创建数据库。
      • @mindy 这听起来有点棘手。你说的随机是什么意思?但是您可能可以在主数据库中拥有一个参考表。将连接与用户 ID 相关联。然后你只需要做一个请求来生成你的数组。或者你可以用 PHP 写入配置文件来添加 mysql 配置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      相关资源
      最近更新 更多