如何从只读副本而不是主数据库AWS获取数据?

时间:2019-04-02 14:53:18

标签: php mysql laravel amazon-web-services amazon-rds

我将Laravel php用作应用程序服务器,将aws RDS(MySql)用作数据库。

我的database.php配置为


'mysql' => [

          'read'=>['host' => env('READ_DB_HOST', '127.0.0.1'),],
          'write'=>['host' => env('DB_HOST', '127.0.0.1'),],
          'driver' => 'mysql',
          '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_general_ci',
          'prefix' => '',
          'strict' => true,
          'engine' => null,
          'options' => [
           \PDO::ATTR_PERSISTENT => true   ]

注意:我正在使用存储过程进行查询。

这里显示数据库连接,但不显示活动会话。

$res = DB::select("CALL getuser('" . $user_id . "','" . $status . "')");

1 个答案:

答案 0 :(得分:0)

如果存储过程仅具有“选择查询”,则使用

$res = DB::select("CALL getuser('" . $user_id . "','" . $status . "')");

否则,如果存储过程使用insert,update或delete query中的任何一个

然后使用

$res = DB::selectFromWriteConnection("CALL getuser('" . $user_id . "','" . $status . "')");