多个数据库的配置与读写分离配置
学习链接
配置多个数据库连接
如果我们的新老数据库使用的都是 MySQL 的话,可以在 config/database.php 的 connections 配置项中新增一个 MySQL 连接。 填入你的配置,然后env 也增加对应配置即可。
'mysql_old' => [
'driver' => 'mysql',
'host' => env('DB_HOST_OLD', '127.0.0.1'),
'port' => env('DB_PORT_OLD', '3306'),
'database' => env('DB_DATABASE_OLD', 'forge'),
'username' => env('DB_USERNAME_OLD', 'forge'),
'password' => env('DB_PASSWORD_OLD', ''),
'unix_socket' => env('DB_SOCKET_OLD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
如何指定新模型链接?
orm
protected $connection = 'mysql_old';
DB
$users = DB::connection('mysql_old')->select(...);
配置数据库读写分离连接
配置 数据库配置即可:
配置read write ,如果账号密码不同就单独配置。
例子如下:
'mysql' => [
'driver' => 'mysql',
'read' => [
'host' => env('DB_HOST_READ', '127.0.0.1'),
'username' => env('DB_USERNAME_READ', 'forge'),
'password' => env('DB_PASSWORD_READ', ''),
],
'write' => [
'host' => env('DB_HOST_WRITE', '127.0.0.1'),
'username' => env('DB_USERNAME_WRITE', 'forge'),
'password' => env('DB_PASSWORD_WRITE', ''),
],
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
更多配置 如 stric 请参考文档。