1

我正在学习 rust,并且我已经使用 Rocket 编写了我的第一个非常简单的 API。现在我想将我的服务器连接到我在 MSFT Azure 上的现有数据库。我很难找到有关 Mssql 如何工作的示例,SQLx 存储库仅包含 Postgres 和 MySQL 的示例。

Azure 门户上没有可用于 rust 的连接字符串,因此我尝试了 Go 和 ODBC 的不同版本:

const SERVER: &str = "<mysqlserver>.database.windows.net";
const PORT: &str = "1433";
const USER: &str  = "sqladmin";
const PASSWORD: &str  = "<mypassword>";
const DATABASE: &str  = "<mydatabase>";

MssqlConnection::connect(&format!("server={};user id={};password={};port={};database={};", SERVER, USER, PASSWORD, PORT, DATABASE)[..]).await?;

这给出了一个Error: Configuration(RelativeUrlWithoutBase),所以我认为 SQLx 需要一个类似的连接字符串"postgres://...",但我无法为 mssql 找到这个字符串。

4

1 回答 1

1

虽然我仍然无法连接到 Azure 上的 SQL Server,但找到正确的连接字符串格式的问题已经解决。我能够使用以下方式连接到本地服务器:

MssqlConnection::connect("mssql://user:password@server/database").await?;

因此,连接字符串遵循与例如 Postgres 相同的架构,不幸的是,Azure 门户上的示例字符串都不是这种类型。

编辑:连接问题很可能是由于缺乏对加密连接的支持,更多细节在这里

于 2021-11-19T11:59:04.483 回答