繁体   English   中英

使用Azure Sql故障转移组时连接字符串应该是什么?

[英]What should the connection string be when using Azure Sql Failover groups?

好的,因此我在mydatabase.databsae.windows.net设置了一个Azure Sql故障转移组,该组包含2个服务器:

  • mydatabase1.databsae.windows.net
  • mydatabase2.databsae.windows.net

我转到connectionstrings.com以获取如下所示的Sql Azure连接字符串:

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

现在问题出在我尝试的用户ID = MyUser @ [serverName]

User ID=MyUser@mydatabase但无效,并反复返回错误:

服务器“ mydatabase”上的数据库“ mySqlDatabase”当前不可用。 请稍后重试连接

我还尝试了User ID=MyUser@mydatabase1 ,它确实起作用了。

但是上面连接字符串中的问题是,当我将故障转移到mydatabase2我将需要更新所有连接字符串。

那么使用Sql Failover组时正确的连接字符串是什么?

这是故障转移组的当前限制:

注意:如果此时您转到SSMS并尝试使用上述侦听器连接到主数据库/次数据库,则会收到错误消息,并且将无法登录。 理想情况下,它应该允许,但当前失败,因为它尝试连接到当前不属于该组的Master数据库。 目前正在对此进行处理,应尽快解决。 直到那时,解决方法是在连接服务器时提供数据库名称。 使用选项按钮提供数据库名称。

这意味着当前仅以下连接字符串有效:

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

要么

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

不幸的是,这使自动故障转移完全无用,因为您需要重新配置所有连接字符串

参考: https : //social.technet.microsoft.com/wiki/contents/articles/37968.working-with-azure-sql-auto-failover-group.aspx

尝试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM