![](/img/trans.png)
[英]What should the providerName attribute be when adding a connection string for an SQL database?
[英]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.