logo
0
0
Login
新增项目说明文档 README.md

MySQL + FRP 内网穿透项目

这是一个基于Docker的MySQL数据库项目,配合frp内网穿透服务,实现远程数据库访问。 cnb机制最长18小时,凌晨4点会清理掉长时间不在线的开发环境 定时任务 系统已配置自动重启任务,每天在 2点、10点、18点 自动重新开启环境,确保服务可用性。

重要提醒:

环境重启时有约30秒的空窗期,数据库连接会中断 当前配置没有数据备份机制,重启环境会导致数据丢失 请务必自行实现数据同步和备份方案 项目结构

/workspace/ ├── mysql/ # MySQL服务配置目录 │ ├── docker-compose.yml # MySQL容器配置 │ ├── config/ # MySQL配置文件目录 │ └── data/ # MySQL数据持久化目录 ├── frpc/ # frp客户端配置目录 │ ├── docker-compose.yml # frp容器配置 │ ├── frpc # frp客户端可执行文件 │ └── frpc.toml # frp客户端配置文件 ├── .cnb.yml # CNB构建配置文件 ├── .cnb/ # CNB配置目录 │ ├── settings.yml # CNB环境设置 │ ├── web_trigger.yml # Web触发器配置 │ └── ... ├── .gitignore # Git忽略文件 └── README.md # 项目说明文档

服务说明

定时任务密钥配置 同组织下创建database-key仓库,文件名为api-token.yml

UCNB_TOKEN: "<PASSWORD>"

MySQL 数据库 同组织下创建database-key仓库,文件名为mysql.yml

MYSQL_VERSION: "自定义版本" MYSQL_ROOT_PASSWORD: "root密码"

FRP 内网穿透 同组织下创建database-key仓库(与MySQL配置同一仓库),文件名为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 = 30006

快速开始

在database-key仓库中创建mysql.yml配置文件 在database-key仓库中创建frpc.yml配置文件 系统会自动启动MySQL和FRP服务 MySQL默认端口:3306(本地)/ 30006(远程)

配置说明

MySQL配置 配置文件目录: /workspace/mysql/config/ 数据目录: /workspace/mysql/data/ 自定义配置可放置在/workspace/mysql/config/目录下 FRP配置 配置文件: frpc/frpc.toml 日志文件: /app/frpc.log

注意事项

数据安全警告:

没有数据备份机制 - 环境重启会导致MySQL数据全部丢失 定时重启风险 - 每天2点、10点、18点自动重启,数据会清空 必须自行备份数据 - 请在外部实现数据同步和备份 环境关闭即数据丢失 - 关闭环境后数据无法恢复

建议解决方案:

使用外部数据库服务 实现定时数据导出 配置数据同步到其他存储 考虑使用持久化存储方案

维护命令

# 查看MySQL服务状态 cd mysql && docker-compose ps # 查看MySQL日志 cd mysql && docker-compose logs -f mysql-db # 查看FRP日志 docker-compose logs -f frpc # 停止MySQL服务 cd mysql && docker-compose down # 重启MySQL服务 cd mysql && docker-compose restart mysql-db # 重启FRP服务 docker-compose restart frpc

安全建议

使用强密码作为数据库root密码 定期备份MySQL数据 在生产环境中限制网络访问权限 定期更新MySQL版本 不要在公网直接暴露数据库服务,务必通过FRP等安全隧道访问