0

我无法通过 SQLx 库访问托管在 Azure 上的 SQL Server 数据库。

我可以使用 pymssql 连接到我的数据库:

conn = pymssql.connect(server='SERVER.database.windows.net', user='USER', password='PASSWORD', database='DATABASE')  

因此,我假设我在 Azure 门户中的设置都是正确的,问题确实出在我的 SQLx 代码上。

使用相同的凭据,我尝试连接到数据库:

let mut connection = MssqlConnection::connect(
        "mssql://USER:PASSWORD@SERVER.database.windows.net/DATABASE").await?;

然而这导致

错误:Io(种类(ConnectionAborted))

并且根据rust std::io 错误文档,这个错误意味着:

连接被远程服务器中止(终止)

我想知道这个错误消息是否准确,因为我不知道为什么遥控器会终止连接。此外,这些调用不会显示在指标选项卡中,因此我认为这些请求从未到达服务器。

我正在像这样导入 tokio 和 sqlx 板条箱:

sqlx = { version = "0.5.9", features = [ "runtime-tokio-native-tls" , "mssql" ] }
tokio = { version = "1.14.0", features = ["full"] }

有谁知道这个错误是什么意思/我做错了什么?

4

1 回答 1

0

我在 SQLx 存储库中发布了创建GitHub 问题并得到以下回复:

这可能是由于我们缺乏对加密连接的支持:#414

看起来这在不久的将来不会解决:

...我们将关闭 MSSQL 驱动程序的源代码,我们不再接受对其代码的外部贡献。如果您当前将 MSSQL 用于非盈利或开源目的,您将能够申请免费许可证以使用即将推出的闭源驱动程序。关联

于 2021-11-20T11:08:44.773 回答