我正试图弄清楚如何将我的Rust应用程序连接到在Docker容器内运行的surrealdb数据库。
SurrealDB网站上的文档只指定了三种连接数据库的方法,它们是:内存、文件和TiKV。
我在Docker上运行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")'
也许还没有实施?
3条答案
按热度按时间avwztpqn1#
**您使用了错误的库!**crate
surrealdb
只能用于启动SurrealDB的数据库示例。但它不是客户端库。正式的客户端库机箱称为
surrealdb-rs
。您可以使用以下方法将其添加到项目中:
(这个️箱子还没有发布在crates.io上,你还不能用
cargo add
下载。️)我还建议在启动数据库时为root用户设置一个密码。否则,您可能会遇到身份验证问题。
现在,您可以使用
Surreal::connect()
连接到正在运行得数据库.在官方库在www.example.com上可用之前crates.io,您可以查看surreal-simple-client。但我建议您等待官方库。
yhqotfr82#
有一个新的rust库用于处理与surrealdb的连接,它是由SurrealDB的同一个作者构建和维护的。
https://github.com/surrealdb/surrealdb.rs
回购协议中的报价:
此库允许从服务器端和客户端(通过Wasm)代码对远程数据库进行简单和高级查询。默认情况下,所有到SurrealDB的连接都是通过WebSockets建立的,并且在连接终止时自动重新连接。连接在断开时自动关闭。
9jyewag03#
According to the IANA
0.0.0.0
只能作为源地址,因此您的代码可能不正确。如果容器在同一主机上运行,您可能需要使用localhost
(127.0.0.1
)。更新
直到最近,还不能从Rust连接到一个远程SurrealDB示例,只能运行一个嵌入式示例。现在有了一个client library for rust。你可以通过WebSockets连接到你的数据库,如下所示: