Skip to content

MySQL主从配置

概述

DSMall Pro推荐使用云数据库服务(阿里云RDS、腾讯云CDB、华为云RDS等),这些服务提供自动的主从复制、读写分离、高可用等功能。通过ThinkPHP配置可以轻松连接云数据库的主从实例。

主从复制架构

1. 架构图

云数据库主实例 (Master)    云数据库只读实例1    云数据库只读实例2
         ↓                    ↓                    ↓
      写入数据              读取数据              读取数据
         ↓                    ↓                    ↓
     ThinkPHP应用 ←─────────── ThinkPHP应用 ←─────────── ThinkPHP应用
         ↓                    ↓                    ↓
    自动读写分离 ←─────────── 自动负载均衡 ←─────────── 自动故障转移

2. 云数据库优势

  • 自动主从复制:无需手动配置,云服务商自动维护
  • 读写分离:自动将读请求分发到只读实例
  • 高可用:自动故障转移,99.95%+可用性
  • 弹性扩展:可根据业务需求动态调整
  • 备份恢复:自动备份,支持时间点恢复

ThinkPHP配置

1. 基础配置

编辑 php-server/config/database.php 文件:

php
<?php

return [
    'default'    =>    'mysql',
    'connections'    =>    [
        'mysql'    =>    [
            // 启用分布式数据库
            'deploy'   => 1,
            // 数据库类型
            'type'     => 'mysql',
            // 服务器地址(主实例,只读实例1,只读实例2)
            'hostname' => ['rm-xxx.mysql.rds.aliyuncs.com', 'rm-xxx.mysql.rds.aliyuncs.com', 'rm-xxx.mysql.rds.aliyuncs.com'],
            // 数据库名
            'database' => 'ds_admin',
            // 数据库用户名
            'username' => ['root', 'slave', 'slave'],
            // 数据库密码
            'password' => ['your_password', 'slave_password', 'slave_password'],
            // 数据库连接端口
            'hostport' => ['3306', '3306', '3306'],
            // 数据库字符集
            'charset'  => 'utf8mb4',
            // 数据库表前缀
            'prefix'   => 'ds_',
        ],
    ],
];

2. 环境变量配置

编辑 .env 文件:

env
# 数据库配置
DB_TYPE=mysql
DB_HOST=rm-xxx.mysql.rds.aliyuncs.com,rm-xxx.mysql.rds.aliyuncs.com,rm-xxx.mysql.rds.aliyuncs.com
DB_NAME=ds_admin
DB_USER=root,slave,slave
DB_PASS=your_password,slave_password,slave_password
DB_PORT=3306,3306,3306
DB_CHARSET=utf8mb4
DB_PREFIX=ds_

3. 云数据库连接地址获取

3.1 阿里云RDS

  1. 登录阿里云控制台
  2. 进入RDS管理控制台
  3. 选择实例,查看连接信息
  4. 获取主实例和只读实例的连接地址

3.2 腾讯云CDB

  1. 登录腾讯云控制台
  2. 进入云数据库MySQL控制台
  3. 选择实例,查看连接信息
  4. 获取主实例和只读实例的连接地址

3.3 华为云RDS

  1. 登录华为云控制台
  2. 进入云数据库RDS控制台
  3. 选择实例,查看连接信息
  4. 获取主实例和只读实例的连接地址

配置说明

1. 关键参数说明

参数说明
deploy启用分布式数据库1=启用, 0=禁用
hostname服务器地址数组['主实例', '只读实例1', '只读实例2']
username用户名数组['主用户', '从用户', '从用户']
password密码数组['主密码', '从密码', '从密码']
hostport端口数组['3306', '3306', '3306']

2. 读写分离原理

  • 写操作:自动路由到主实例(第一个服务器)
  • 读操作:自动路由到只读实例(除第一个外的其他服务器)
  • 负载均衡:多个只读实例间自动负载均衡

3. 云数据库注意事项

  1. 主实例:必须是第一个连接地址
  2. 只读实例:从第二个开始的所有连接地址
  3. 网络访问:确保应用服务器能访问云数据库
  4. 安全组:配置正确的安全组规则
  5. 白名单:将应用服务器IP加入数据库白名单
  6. 连接数限制:注意云数据库的连接数限制
  7. 性能监控:使用云监控查看数据库性能

部署检查清单

配置检查

  • [ ] ThinkPHP配置正确
  • [ ] 环境变量配置正确
  • [ ] 云数据库连接地址正确
  • [ ] 数据库用户权限正确
  • [ ] 安全组配置正确
  • [ ] 白名单配置正确

功能检查

  • [ ] 读写分离正常
  • [ ] 主从数据同步正常
  • [ ] 负载均衡正常
  • [ ] 连接池正常
  • [ ] 云监控正常

性能检查

  • [ ] 数据库性能正常
  • [ ] 连接数使用正常
  • [ ] 响应时间正常
  • [ ] 资源使用正常

最后更新:2024-01-20
维护者:DSPlatform技术团队(德尚网络)

获取帮助

如果您在使用过程中遇到问题,可以通过以下方式获取帮助:

  • 官方网站https://www.csdeshang.com
  • 电话咨询:15364080101(微信同号)
  • QQ咨询:858761000
  • 邮箱咨询:858761000@qq.com
  • 工作时间:工作日 9:00-18:00
  • 微信咨询:扫码添加微信
微信二维码

版权所有 © 2014-至今 德尚网络