方法一:多配置实现
配置文件照着新增一个配置:
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql_read' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
'mysql_write' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
],
使用 DB 门面连接不同数据库:
$articles = DB::connection('mysql_read')->select(...);
$update_res = DB::connection('mysql_read')->where(...)->update(...);
也可以在模型中指定数据库连接:
public $connection = 'mysql_read';
方法二:使用 laravel 读写分离
database.php 配置文件:
'mysql' => [
'read' => [
'host' => '192.168.1.1'
],
'write' => [
'host' => '196.168.1.2'
],
'driver' => 'mysql',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]
设置完毕之后,Laravel5默认将select的语句让read指定的数据库执行,insert/update/delete则交给write指定的数据库,达到读写分离的作用。
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
649494848