好的,所以我在mydatabase.databsae.windows.net
设置了一个包含2台服务器的Azure Sql Failover小组:
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组时,正确的连接字符串是什么?
答案 0 :(得分:3)
这是故障转移组的当前限制:
注意:如果此时您转到SSMS并尝试连接到您的 使用上述侦听器的主/辅助数据库,您将收到 错误,无法登录。理想情况下它应该允许, 但它目前失败,因为它试图连接到Master数据库 目前不属于该组织。目前正在这样做 工作,应尽快解决。直到那时,解决方法是 连接到服务器时提供数据库名称。使用该选项 按钮提供数据库名称。
这意味着目前只有以下连接字符串可以工作:
Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;
User ID=MyUser@mydatabase1;Password=myPassword;Trusted_Connection=False;
Encrypt=True;
OR
Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;
User ID=MyUser@mydatabase2;Password=myPassword;Trusted_Connection=False;
Encrypt=True;
不幸的是,这会使自动故障转移完全无用,因为您需要重新配置所有连接字符串
答案 1 :(得分:0)
尝试:
Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;
User ID=MyUser@mydatabase;Password=myPassword;Trusted_Connection=False;
Encrypt=True;MultiSubnetFailover=True;