Ubuntu 下 Postman 连接数据库的实用方法
核心思路
- Postman 本身不直接连接数据库,常见做法是通过数据库的 HTTP/REST 接口 或自建一个 中间 API 服务 来执行 SQL,再由 Postman 发送 HTTP 请求进行增删改查。
- 在 Ubuntu 上,可优先选择带 REST 接口的数据库(如 TDengine),或用一个轻量 Node.js 服务桥接 MySQL/Redis 等,然后用 Postman 测试这些 HTTP 端点。
方法一 通过数据库自带的 REST 接口直连
- 适用:数据库原生提供 HTTP/REST 接口(如 TDengine)。
- 步骤
- 确认数据库已启用 REST 服务并开放端口(TDengine 默认 6041)。
- 在 Postman 新建 POST 请求,URL 形如:
- 指定数据库:http://:6041/rest/sql/<db_name>
- 不指定数据库:http://:6041/rest/sql
- Headers 添加:Authorization: Basic <base64(user:password)>。
- Body 选择 raw → text,写入 SQL,例如:
- 不指定库:show databases;
- 指定库:use <db_name>; show tables;(注意:REST 接口为无状态,USE 对后续语句无效,表名需带库前缀,或在 URL 中指定 db_name)。
- 发送请求,解析返回的 JSON 结果。
- 示例(列出数据库,curl 与 Postman 等效):
curl -H ‘Authorization: Basic cm9vdDp0YW9zZGF0YQ==’ -d ‘show databases;’ http://192.168.8.104:6041/rest/sql/testdb
返回示例:
{ “status”: “succ”, “head”: [“name”,“created_time”,…], “data”: [[“log”,…]], “rows”: 1 }
说明:从 2.2.0.0 起可在 URL 中指定 db_name,SQL 中未带库前缀时将使用该库。
方法二 自建中间 API 服务连接 MySQL 或 Redis
- 适用:数据库无原生 REST,或需要更复杂的业务逻辑与权限控制(如 MySQL、Redis)。
- 思路:用 Node.js 写极简 REST API(如 Express + mysql2/ioredis),在 Ubuntu 上启动服务,Postman 向该服务发送 HTTP 请求完成数据库操作。
- 快速示例(以 Redis 为例)
- 安装依赖并启动服务(示例端口 3000):
- 安装:sudo apt-get update && sudo apt-get install -y redis-server nodejs npm
- 初始化并安装:npm init -y && npm install express ioredis
- 启动服务(示例 app.js):
const express = require(‘express’); const Redis = require(‘ioredis’);
const app = express(); const redis = new Redis(); app.use(express.json());
app.post(‘/set’, async (req,res)=>{ await redis.set(req.body.key,req.body.value); res.send(‘OK’); });
app.get(‘/get/:key’, async (req,res)=>{ const v=await redis.get(req.body.key); res.json({value:v}); });
app.listen(3000,()=>console.log(‘API on :3000’));
- 运行:node app.js
- Postman 测试:
- POST http://localhost:3000/set,Body raw JSON:{“key”:“testKey”,“value”:“testValue”}
- GET http://localhost:3000/get/testKey
- 同理可用 mysql2 连接 MySQL,提供 /query 等端点供 Postman 调用。
方法三 使用 xMySQL 将 MySQL 暴露为 REST API
- 适用:快速把 MySQL 变成可通过 HTTP 访问的接口(开发/测试环境)。
- 步骤
- 安装 Node.js 与 xMySQL:npm install -g xmysql
- 连接数据库并启动服务(默认端口 3000):
xmysql -h -u -p -d <db_name>
- Postman 访问:GET/POST http://localhost:3000/api/
进行 CRUD(如 /api/users)。
- 注意:仅建议用于开发/测试,生产环境请使用正式 API 或数据库网关。
常见问题与排查
- 认证失败:检查 Basic Auth 的 Base64(user:password) 是否正确;必要时在 URL 中显式指定 db_name 以避免权限或上下文问题。
- 无状态限制:如 TDengine RESTful 为无状态,USE 语句无效,所有对象需带库前缀或在 URL 指定库。
- 连接被拒:确认数据库/中间服务在 Ubuntu 上已启动并监听正确端口(如 6041/3000),且 防火墙/安全组 已放行。
- 跨域与网络:若 API 与 Postman 不在同一主机,确保网络可达;必要时在 API 服务中配置 CORS。
- 数据安全:避免在 Postman 脚本中硬编码密码;生产环境使用 HTTPS、最小权限账号、连接池 与 输入校验。