使用 SQLx 连接到 SQL 服务器
Connecting to SQL Server with SQLx
我在通过 SQLx 库访问 Azure 上托管的 SQL 服务器数据库时遇到困难。
我可以使用 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?;
但是这会导致
Error: Io(Kind(ConnectionAborted))
并且根据 rust std::io error docs 这个错误意味着:
The connection was aborted (terminated) by the remote server
我想知道这个错误消息是否准确,因为我不知道为什么远程会终止连接。此外,这些调用不会显示在指标选项卡中,因此我认为请求从未到达服务器。
我正在像这样导入 tokio 和 sqlx 包:
sqlx = { version = "0.5.9", features = [ "runtime-tokio-native-tls" , "mssql" ] }
tokio = { version = "1.14.0", features = ["full"] }
有谁知道这个错误是什么means/what我做错了吗?
我在 SQLx 存储库中发布了一个 GitHub issue 并得到了以下回复:
This may be due to our lack of support for encrypted connections: #414
看来近期不会解决这个问题:
... we will be closing up the source of the MSSQL driver we can no longer accept outside contributions to its code. If you are currently using MSSQL for non-profit or open-source purposes, you will be able to request a free license to use the upcoming closed-source driver. link
我在通过 SQLx 库访问 Azure 上托管的 SQL 服务器数据库时遇到困难。
我可以使用 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?;
但是这会导致
Error: Io(Kind(ConnectionAborted))
并且根据 rust std::io error docs 这个错误意味着:
The connection was aborted (terminated) by the remote server
我想知道这个错误消息是否准确,因为我不知道为什么远程会终止连接。此外,这些调用不会显示在指标选项卡中,因此我认为请求从未到达服务器。
我正在像这样导入 tokio 和 sqlx 包:
sqlx = { version = "0.5.9", features = [ "runtime-tokio-native-tls" , "mssql" ] }
tokio = { version = "1.14.0", features = ["full"] }
有谁知道这个错误是什么means/what我做错了吗?
我在 SQLx 存储库中发布了一个 GitHub issue 并得到了以下回复:
This may be due to our lack of support for encrypted connections: #414
看来近期不会解决这个问题:
... we will be closing up the source of the MSSQL driver we can no longer accept outside contributions to its code. If you are currently using MSSQL for non-profit or open-source purposes, you will be able to request a free license to use the upcoming closed-source driver. link