# go-run-sql **Repository Path**: devqiaoyu/go-run-sql ## Basic Information - **Project Name**: go-run-sql - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go Run SQL Service 一个简单的Go服务,可以通过API接口执行SQL语句并返回结果。 ## 功能特性 - 支持多种数据库(MySQL、PostgreSQL、SQLite3、MongoDB) - RESTful API接口 - 容器化部署支持 - 多架构支持(amd64, arm64, arm/v7, arm64/v8) - 错误处理和响应格式化 ## 快速开始 ### 本地运行 1. 克隆项目: ``` git clone cd go-run-sql ``` 2. 运行服务: ``` go run main.go ``` 或者构建并运行: ``` go build -o go-run-sql ./go-run-sql ``` ### Docker运行 1. 构建Docker镜像: ``` docker build -t go-run-sql . ``` 2. 运行容器: ``` docker run -p 8080:8080 go-run-sql ``` ### 多架构Docker镜像构建 项目支持构建多种CPU架构的Docker镜像,提供了交互式构建脚本 [build-multi-arch.sh](file:///Users/joy/Documents/05_Code/Self/go-run-sql/build-multi-arch.sh): 1. 使用提供的脚本构建多架构镜像: ``` ./build-multi-arch.sh [tag] ``` 运行脚本后,将提示选择构建选项: - 选项1:本地构建当前架构镜像(最简单快速的方式) - 选项2:构建多架构镜像并推送到镜像注册表(需要可访问的镜像仓库) - 选项3:本地构建多架构镜像但不导出(仅验证构建过程) 2. 或者手动使用Docker Buildx构建: ``` # 创建并使用buildx构建器 docker buildx create --name mybuilder --use # 构建当前架构镜像 docker build -t go-run-sql . # 或构建多架构镜像并推送到注册表 docker buildx build \ --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm64/v8 \ -t username/go-run-sql \ --push \ . ``` ## API接口 ### 执行SQL - **URL**: `/execute` - **方法**: `POST` - **请求头**: `Content-Type: application/json` - **请求体**: **对于关系型数据库 (MySQL, PostgreSQL, SQLite3):** ```json { "driver": "mysql", // 数据库驱动: mysql, postgres, sqlite3 "host": "localhost", // 数据库主机 "port": 3306, // 数据库端口 "username": "root", // 用户名 "password": "password", // 密码 "database": "testdb", // 数据库名称 "sql": "SELECT * FROM users" // 要执行的SQL语句 } ``` **对于MongoDB:** ```json { "driver": "mongodb", // 数据库驱动: mongodb "host": "localhost", // 数据库主机 "port": 27017, // 数据库端口 "username": "mongouser", // 用户名 "password": "mongopassword", // 密码 "database": "testdb", // 数据库名称 "collection": "users", // 集合名称 "sql": "{}" // 查询语句(JSON格式) } ``` - **成功响应**: ```json { "success": true, "data": [ { "id": 1, "name": "John Doe", "email": "john@example.com" } ] } ``` - **错误响应**: ```json { "success": false, "error": "错误信息" } ``` ## 支持的数据库 - MySQL - PostgreSQL - SQLite3 - MongoDB ## 支持的架构 - amd64 (x86_64) - arm64 (aarch64) - arm/v7 (arm32) - arm64/v8 (arm64 with v8 instruction set) ## 安全提醒 此服务直接执行传入的SQL语句,存在SQL注入风险。在生产环境中使用时,请确保: 1. 在受信任的网络环境中部署 2. 添加身份验证和授权机制 3. 对输入进行严格的验证和过滤 4. 使用参数化查询而不是直接拼接SQL