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

如何从Rust应用连接Docker容器中的SurrealDB数据库?

问题

我正尝试将Rust应用连接至运行在Docker容器中的SurrealDB数据库。SurrealDB官网文档仅指定三种连接方式:memory、file和tikv。我按照官网指示执行以下命令运行SurrealDB容器:

docker run --rm -p 8000:8000 surrealdb/surrealdb:latest start

我尝试用如下代码连接:

let ds = Datastore::new("http://0.0.0.0:8000").await?;

但收到错误:

value: Ds("Unable to load the specified datastore")'

请问该连接方式是否尚未实现?

回答

你用错了连接组件。Datastore 仅用于连接本地存储后端(memory、file、tikv),无法连接远程SurrealDB的HTTP服务。

要连接Docker容器中的SurrealDB,需使用Rust SDK里的 Surreal 客户端通过WebSocket协议连接,示例代码如下:

use surrealdb::Surreal;
use surrealdb::engine::remote::ws::Ws;

#[tokio::main]
async fn main() -> surrealdb::Result<()> {
    // 连接到Docker中运行的SurrealDB实例
    let mut db = Surreal::new::<Ws>("0.0.0.0:8000").await?;

    // 指定要使用的命名空间和数据库
    db.use_ns("your_namespace").use_db("your_database").await?;

    // 执行后续数据库操作
    Ok(())
}

你当前启动Docker容器的命令是正确的,容器已在8000端口同时提供HTTP和WebSocket服务,WebSocket是Rust客户端连接远程实例的标准方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:05:45