php项目实现读写分离

环境介绍

thinkphp6+mysql8+cnetos8

1,已配置好的主从复制数据库,详情请了解

https://www.cnblogs.com/stronger-xsw/p/12785384.html

2,打开thinkphp项目下config目录配置文件database.php文件

tp6项目具体配置如下

return [
// 默认使用的数据库连接配置
'default'         => 'mysql',

// 自定义时间查询规则
'time_query_rule' => [],

// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp'  => true,

// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',

// 数据库连接配置信息
'connections'     => [
    'mysql' => [
        // 数据库类型
        'type'              => 'mysql',
        // 服务器地址
        'hostname'          =>'192.168.110.131,192.168.110.132,192.168.110.133',//第一台为主服务器,后面两台从服务器
        // 数据库名
        'database'          => 'mydb',
        // 用户名
        'username'          => 'root',//用户名全部一样可以这样写,只要有一个不同就分开写
        // 密码
        'password'          => '123456,12345678,123456',
        // 端口
        'hostport'          => '3306',
        // 数据库连接参数
        'params'            => [],
        // 数据库编码默认采用utf8
        'charset'           =>'utf8',
        // 数据库表前缀
        'prefix'            => '',

        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'deploy'            => 1,//1为开启分布式
        // 数据库读写是否分离 主从式有效
        'rw_separate'       => true,//是否开启读写分离
        // 读写分离后 主服务器数量
        'master_num'        => 1,
        // 指定从服务器序号
        'slave_no'          => '',
        // 是否严格检查字段是否存在
        'fields_strict'     => true,
        // 是否需要断线重连
        'break_reconnect'   => false,
        // 监听SQL
        'trigger_sql'       => env('app_debug', true),
        // 开启字段缓存
        'fields_cache'      => false,
        // 字段缓存路径
        'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
    ],

    // 更多的数据库配置信息
],
];

3,详情介绍参考tp6手册

https://www.kancloud.cn/manual/thinkphp6_0/1037577