簡體   English   中英

Laravel - 如何做數據庫連接到從屬數據庫

[英]Laravel - How to do DB Connection to Slave Database

正如上面的標題,我需要連接到從數據庫(出於某種原因)...

但我找不到怎么做?

.

下面是我的數據庫配置:

'mysql' => [
    'read' => [
        'host' => env('DB_SLAVE', '127.0.0.1'),
        'port' => env('DB_SLAVE_PORT', '3306'),
        'username'  => env('DB_SLAVE_USERNAME', 'root'),
        'password'  => env('DB_SLAVE_PASSWORD', 'pwdforslave'),
    ],
    'write' => [
        'host' => env('DB_MASTER', '127.0.0.1'),
        'port' => env('DB_MASTER_PORT', '3308'),
        'username'  => env('DB_MASTER_USERNAME', 'masteruser'),
        'password'  => env('DB_MASTER_PASSWORD', 'pwdformaster'),
    ],
    'driver'    => 'mysql',
    'database'  => 'amazingapp',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => 'aa_',
    'strict' => false,
    'engine' => env('DB_ENGINE', 'InnoDB'),
    'unix_socket' => env('DB_SOCKET', ''),
],  

.

要與從數據庫連接,目前我在想的是DB::connection('mysql.slave');

但它不起作用..

你可以在你的.env上做多個DB連接而不用碰你的database.php

這就是我連接多個數據庫連接的方式

 DB_CONNECTION=mysql
 DB_HOST=localhost
 DB_PORT=3306
 DB_DATABASE=sample
 DB_USERNAME=root
 DB_PASSWORD=123456


 DB_CONNECTION=mysql1
 DB_HOST=localhost
 DB_PORT=3306
 DB_DATABASE=sample
 DB_USERNAME=root
 DB_PASSWORD=123456

當你想在你的代碼上調用它時,如protrafree

像這樣的東西

  DB::connection('mysql')

或者

   DB::connection('mysql1')

您的意思是在database.php創建新的數據庫連接條目並通過DB::connection('mysql2')與統計方法DB::connection('mysql2')

也許你可以檢查這個鏈接Laravel Multiple Database

.

可以試試這個配置

'mysql' => [
    'read' => [
        'host' => env('DB_SLAVE', '127.0.0.1'),
        'port' => env('DB_SLAVE_PORT', '3306'),
        'username'  => env('DB_SLAVE_USERNAME', 'root'),
        'password'  => env('DB_SLAVE_PASSWORD', 'pwdforslave'),
    ],
    'write' => [
        'host' => env('DB_MASTER', '127.0.0.1'),
        'port' => env('DB_MASTER_PORT', '3308'),
        'username'  => env('DB_MASTER_USERNAME', 'masteruser'),
        'password'  => env('DB_MASTER_PASSWORD', 'pwdformaster'),
    ],
    'driver'    => 'mysql',
    'database'  => 'amazingapp',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => 'aa_',
    'strict' => false,
    'engine' => env('DB_ENGINE', 'InnoDB'),
    'unix_socket' => env('DB_SOCKET', ''),
],  

'mysql_master' => [
    'host' => env('DB_MASTER', '127.0.0.1'),
    'port' => env('DB_MASTER_PORT', '3308'),
    'username'  => env('DB_MASTER_USERNAME', 'masteruser'),
    'password'  => env('DB_MASTER_PASSWORD', 'pwdformaster'),
    'driver'    => 'mysql',
    'database'  => 'amazingapp',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => 'aa_',
    'strict' => false,
    'engine' => env('DB_ENGINE', 'InnoDB'),
    'unix_socket' => env('DB_SOCKET', ''),
],  

'mysql_slave' => [
    'host' => env('DB_SLAVE', '127.0.0.1'),
    'port' => env('DB_SLAVE_PORT', '3306'),
    'username'  => env('DB_SLAVE_USERNAME', 'slaveuser'),
    'password'  => env('DB_SLAVE_PASSWORD', 'pwdforslave'),
    'driver'    => 'mysql',
    'database'  => 'amazingapp',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => 'aa_',
    'strict' => false,
    'engine' => env('DB_ENGINE', 'InnoDB'),
    'unix_socket' => env('DB_SOCKET', ''),
],  

.

所以,如果想連接到從站,只需使用DB::connection('mysql_slave');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM