You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure SQL故障转移组时,正确的连接字符串该如何配置?

正确配置Azure SQL故障转移组的连接字符串

这是Azure SQL故障转移组使用中很常见的配置误区,我来给你拆解正确的做法:

核心结论

使用故障转移组的虚拟服务器名作为Server参数,同时User ID必须指定原始逻辑服务器名(也就是你创建故障转移组时的主服务器,比如mydatabase1),而非故障转移组的虚拟名。

正确的连接字符串

Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;User ID=MyUser@mydatabase1;Password=myPassword;Trusted_Connection=False;Encrypt=True;

为什么之前的配置会失败?

  • 当你尝试User ID=MyUser@mydatabase时,Azure会尝试在名为mydatabase的逻辑服务器上查找该登录名,但mydatabase.database.windows.net只是故障转移组的虚拟入口,并不是实际存在的逻辑服务器,因此会返回“数据库不可用”的错误。
  • 而你用User ID=MyUser@mydatabase1能成功连接,是因为这个登录名绑定到实际逻辑服务器mydatabase1,但如果只指定单个服务器名,故障转移后就需要手动修改连接字符串,完全失去了故障转移组的自动路由作用。

为什么这个配置能实现自动故障转移?

故障转移组会自动同步主服务器上的登录名、权限到次要服务器(mydatabase2),所以MyUser@mydatabase1这个登录名在mydatabase2上也会存在且有效。当故障转移发生时,虚拟服务器名mydatabase.database.windows.net会自动路由到当前的主服务器(无论是mydatabase1还是mydatabase2),你的连接字符串不需要任何修改就能正常连接。

额外注意

如果后续你需要调整故障转移组的主服务器,只需要确保User ID对应的是故障转移组最初配置时的主服务器登录名(或者已经同步到所有成员服务器的登录名)即可,无需调整连接字符串的其他部分。

内容的提问来源于stack exchange,提问作者JKennedy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:03:41