You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS集成SurrealDB出现Authentication Error问题求助

解决SurrealDB Node.js客户端认证失败问题

问题分析

你遇到的AuthenticationError核心原因是root用户登录的参数传递逻辑错误,root作为全局管理员账号,登录流程无需绑定特定命名空间(NS)或数据库(DB),同时连接协议的隐式使用也可能引发问题。

解决方案

调整代码的登录与环境切换逻辑,并明确连接协议:

import Surreal from 'surrealdb.js';
// 显式指定WebSocket协议连接RPC端点
const db = new Surreal('ws://localhost:8000/rpc');

async function main() {
    try {
        // Root用户登录仅需传入账号密码
        await db.signin({
            user: 'root',
            pass: 'root',
        });
        console.log('登录成功');

        // 登录完成后,切换到目标命名空间和数据库
        await db.use('practice', 'buybig');

        console.log(await db.select('users'));

    } catch (e) {
        console.error('ERROR', e);
    }
}

main();

关键修正说明

  • 分离认证与环境切换:root用户拥有全局权限,登录阶段不需要指定NS/DB,必须先完成认证,再通过db.use()切换到目标工作环境;
  • 明确WebSocket协议:surrealdb.js底层依赖WebSocket与服务端通信,显式使用ws://协议可避免HTTP升级WebSocket时的潜在兼容性问题;
  • 验证NS/DB存在性:确保practice命名空间和buybig数据库已创建,可通过SurrealDB CLI执行以下命令确认:
    surreal sql --user root --pass root
    NS CREATE practice;
    DB CREATE buybig;
    

额外排查方向

  • 确认surrealdb.js版本与SurrealDB服务端版本一致,版本不匹配可能导致认证逻辑冲突;
  • 重启SurrealDB服务后重新测试,排除服务端缓存干扰。

内容的提问来源于stack exchange,提问作者Jaideep Shekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:10:37