M1芯片Mac下Visual Studio for Mac的.NET项目连接Azure SQL Edge sa登录失败如何解决
问题排查与解决方案
核心错误点
首先核对配置参数:你Docker启动Azure SQL Edge时设置的SA密码为Password.1,但项目连接字符串中填写的密码为SPassword.1,开头多了1个S字符,这是直接触发Login failed for user 'sa'报错的原因,先修正连接字符串的密码为和启动命令一致的内容。
其他需补充的配置项
如果修正密码后仍然报错,是因为.NET的System.Data.SqlClient/Microsoft.Data.SqlClient驱动和Azure Data Studio的默认连接规则不同,需要补充加密相关配置:
- Azure SQL Edge默认要求连接加密,.NET 6及以上版本的SqlClient驱动默认会开启服务器证书校验,而Azure Data Studio默认会自动信任自签名证书,因此会出现工具可连、项目无法连接的差异。
- 修正后的完整连接字符串如下:
"DefaultConnection": "data source=localhost,1433;Database=master;User Id=sa;Password=Password.1;Encrypt=True;TrustServerCertificate=True"
可选校验项
如果以上操作完成后依然报错,可做以下排查:
- 执行
lsof -i :1433确认1433端口没有被本地其他服务占用,若有占用可修改Docker启动命令的端口映射(例如改为-p 1455:1433),同步修改连接字符串中的端口即可。 - 若后续修改过SA密码,需满足MSSQL密码复杂度要求:长度不低于8位,同时包含大小写字母、数字、特殊符号,否则密码会静默设置失败导致登录报错。
内容的提问来源于stack exchange,提问作者Franco Neil Glovasa
相关产品推荐
相关产品推荐

