Laravel5系〜6系まで検証済みの方法です。
Laravelプロジェクト内では write
read
という名前のパラメータで、それぞれmaster、slaveの設定を書く事ができます。
databases.php
'connections' => [
'mysql' => [
'driver' => 'mysql',
'read' => [
//'unix_socket' => env('DB_SLAVE_SOCKET', ''), // ソケット接続も可能
'host' => env('DB_SLAVE_HOST', '127.0.0.1'),
'port' => env('DB_SLAVE_PORT', '3306'),
],
'write' => [
//'unix_socket' => env('DB_MASTER_SOCKET', ''), // ソケット接続も可能
'host' => env('DB_MASTER_HOST', '127.0.0.1'),
'port' => env('DB_MASTER_PORT', '3307'),
],
'database' => env('DB_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'test'),
'password' => env('DB_PASSWORD', 'test'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
]
.env
.envファイルの設定で、master-slaveそれぞれのDBのコネクション情報を入力する
DB_DATABASE: test
DB_USERNAME: test
DB_PASSWORD: test
DB_SLAVE_HOST: localhost
DB_SLAVE_HOST: 3306
DB_MASTER_HOST: localhost
DB_MASTER_HOST: 3307
これで無事に設定する事ができました。
最近のコメント