配置Turso数据库时遭遇HRANA_WEBSOCKET_ERROR(401)问题
解决Turso + Drizzle的HRANA_WEBSOCKET_ERROR 401认证问题
以下是针对你遇到的401认证错误的排查和解决步骤:
核对.env变量准确性
确保TURSO_DATABASE_URL是WebSocket协议开头(wss://),而非HTTP/HTTPS;TURSO_AUTH_TOKEN需与Turso控制台生成的令牌完全一致,不要包含多余空格、换行或引号。同时确认.env文件位于项目根目录,且drizzle.config.ts中正确读取了这些变量,示例配置:import { defineConfig } from "drizzle-kit"; import * as dotenv from "dotenv"; dotenv.config(); export default defineConfig({ schema: "./src/db/schema.ts", driver: "turso", dbCredentials: { url: process.env.TURSO_DATABASE_URL!, authToken: process.env.TURSO_AUTH_TOKEN!, }, });重新生成Turso认证令牌
用Turso CLI重新创建全权限令牌:turso db tokens create <你的数据库名称>将新生成的令牌替换
.env中的TURSO_AUTH_TOKEN,避免旧令牌过期或权限不足。升级依赖版本
当前使用的drizzle-kit v0.19.6和drizzle-orm v0.27.2可能与Turso的HRANA接口存在兼容性问题,升级到最新版本:bun add drizzle-orm@latest drizzle-kit@latest @libsql/client@latestWSL2网络排查
验证WSL2能否正常访问Turso的WebSocket服务,执行以下命令替换对应参数:curl -i -N -H "Authorization: Bearer <你的TURSO_AUTH_TOKEN>" wss://<你的数据库URL>如果连接失败,检查WSL2的网络防火墙设置,或尝试切换到WSL2桥接网络模式。
对齐Drizzle Studio的连接参数
既然Drizzle Studio能正常运行,对比它使用的数据库URL和令牌与项目.env中的值是否完全一致,排除复制粘贴时的字符遗漏或错误。
内容的提问来源于stack exchange,提问作者Mozart Maia
相关产品推荐
相关产品推荐

