这是一个基于Docker的三数据库项目,同时运行MySQL、PostgreSQL和Redis数据库,配合frp内网穿透服务,实现远程数据库访问。
** 重要提醒**:本项目仅用于开发和测试环境,生产环境请使用专业的数据库服务和备份方案。 ** 重要提醒**:本项目仅用于开发和测试环境,生产环境请使用专业的数据库服务和备份方案。 ** 重要提醒**:本项目仅用于开发和测试环境,生产环境请使用专业的数据库服务和备份方案。
CNB机制限制:
定时重启:(还没写)
/workspace/ ├── mysql/ # MySQL服务配置目录 │ ├── docker-compose.yml # MySQL容器配置 │ ├── config/ # MySQL配置文件目录 │ └── data/ # MySQL数据持久化目录 ├── postgresql/ # PostgreSQL服务配置目录 │ ├── docker-compose.yml # PostgreSQL容器配置 │ ├── postgres-config/ # PostgreSQL自定义配置 │ │ ├── postgresql.conf # PostgreSQL主配置文件 │ │ └── pg_hba.conf # 访问控制配置 │ └── data/ # PostgreSQL数据持久化目录 ├── redis/ # Redis服务配置目录 │ ├── docker-compose.yml # Redis容器配置 │ ├── config/ # Redis配置文件目录 │ │ └── redis.conf # Redis配置文件 │ └── data/ # Redis数据持久化目录 ├── .cnb.yml # CNB构建配置文件 ├── .gitignore # Git忽略文件 └── README.md # 项目说明文档
同组织下创建 keys 仓库,文件名为 api-token.yml
UCNB_TOKEN: "<PASSWORD>"
同组织下创建 database-key 仓库,文件名为 mysql.yml
MYSQL_VERSION: "自定义版本" # 如: 8.0
MYSQL_ROOT_PASSWORD: "root密码"
同组织下创建 database-key 仓库,文件名为 postgresql.yml
POSTGRES_VERSION: "自定义版本" # 如: 15
POSTGRES_USER: "用户名" # 数据库名与用户名相同
POSTGRES_PASSWORD: "密码"
同组织下创建 database-key 仓库,文件名为 redis.yml
REDIS_VERSION: "自定义版本" # 如: 7-alpine
REDIS_PASSWORD: "密码"
同组织下创建 keys 仓库,文件名为 cos.yml
SECRET_ID: "腾讯云访问密钥ID"
SECRET_KEY: "腾讯云访问密钥Key"
BUCKET: "COS存储桶名称"
REGION: "COS地域" # 如: ap-beijing
同组织下创建 database-key 仓库,文件名为 frpc.yml
frpc_content: |
# 日志配置
log.level = "info"
log.to = "/app/frpc.log"
# 服务端配置
serverAddr = "frps服务器ip"
serverPort = frps的端口
auth.token = "frps的密码"
# MySQL代理配置
[[proxies]]
name = "mysql"
type = "tcp"
localIP = "172.17.0.1"
localPort = 3306
remotePort = 3306
# PostgreSQL代理配置
[[proxies]]
name = "postgres"
type = "tcp"
localIP = "172.17.0.1"
localPort = 5432
remotePort = 5432
# Redis代理配置
[[proxies]]
name = "redis"
type = "tcp"
localIP = "172.17.0.1"
localPort = 6379
remotePort = 6379
| 数据库 | 本地端口 | 远程端口 | 容器名称 |
|---|---|---|---|
| MySQL | 3306 | 3306 | mysql |
| PostgreSQL | 5432 | 5432 | postgres |
| Redis | 6379 | 6379 | redis_server |
mysql.yml 配置文件postgresql.yml 配置文件redis.yml 配置文件cos.yml 配置文件(用于数据备份和恢复)frpc.yml 配置文件(可选)/workspace/mysql/config//workspace/mysql/data//workspace/mysql/config/ 目录下/workspace/postgresql/postgres-config/postgresql.conf/workspace/postgresql/postgres-config/pg_hba.conf/workspace/postgresql/data/dbdata//workspace/redis/config/redis.conf/workspace/redis/data//workspace/redis/data/dump.rdbcos://bucket/仓库/分支/数据库/frpc/frpc.toml/app/frpc.log# 查看MySQL服务状态
cd mysql && docker-compose ps
# 查看PostgreSQL服务状态
cd postgresql && docker-compose ps
# 查看Redis服务状态
cd redis && docker-compose ps
# 查看MySQL日志
cd mysql && docker-compose logs -f mysql-db
# 查看PostgreSQL日志
cd postgresql && docker-compose logs -f postgres
# 查看Redis日志
cd redis && docker-compose logs -f redis
# 查看FRP日志
docker-compose logs -f frpc
# 停止MySQL服务
cd mysql && docker-compose down
# 停止PostgreSQL服务
cd postgresql && docker-compose down
# 停止Redis服务
cd redis && docker-compose down
# 重启MySQL服务
cd mysql && docker-compose restart mysql-db
# 重启PostgreSQL服务
cd postgresql && docker-compose restart postgres
# 重启Redis服务
cd redis && docker-compose restart redis
# 启动所有服务
docker compose -f ./mysql/docker-compose.yml up -d
docker compose -f ./postgresql/docker-compose.yml up -d
docker compose -f ./redis/docker-compose.yml up -d
# 手动数据备份(可选记得修改cnb.yml,目前是同步后删除压缩文件)
docker compose -f ./mysql/docker-compose.yml stop
docker compose -f ./postgresql/docker-compose.yml stop
docker compose -f ./redis/docker-compose.yml stop
tar -czf /workspace/tmp/mysql.tar.gz -C /workspace/mysql data
tar -czf /workspace/tmp/postgresql.tar.gz -C /workspace/postgresql data
tar -czf /workspace/tmp/redis.tar.gz -C /workspace/redis data
# 手动数据恢复(可选记得修改cnb.yml,目前是同步后删除压缩文件)
tar -xzf /workspace/tmp/mysql.tar.gz -C /workspace/mysql
tar -xzf /workspace/tmp/postgresql.tar.gz -C /workspace/postgresql
tar -xzf /workspace/tmp/redis.tar.gz -C /workspace/redis
已集成COS数据备份功能:
启动环境:
/workspace/tmp/关闭环境:
需要配置以下参数:
SECRET_ID:腾讯云访问密钥IDSECRET_KEY:腾讯云访问密钥KeyBUCKET:COS存储桶名称REGION:COS地域(如:ap-beijing)重要提醒:
注意事项:
建议解决方案:
密码安全:
网络安全:
维护更新:
访问控制:
cd mysql && docker-compose logs mysql-dbcd postgresql && docker-compose logs postgres/app/frpc.log** 重要提醒**:本项目仅用于开发和测试环境,生产环境请使用专业的数据库服务和备份方案。 ** 重要提醒**:本项目仅用于开发和测试环境,生产环境请使用专业的数据库服务和备份方案。 ** 重要提醒**:本项目仅用于开发和测试环境,生产环境请使用专业的数据库服务和备份方案。