我在单用户模式下启动了Server,如:c:\....\sqlservr -m
当我试图用SQLCMD -E连接到它时,我会得到以下错误:
Msg 18461, Level 14, State 1, Server SERVERNAME, Line 1
Login failed to user 'USER\Name'. Reason: Server is in single user mode. Only one administrator can connect at this time.我作为域管理员登录到服务器上的用户。
在我尝试之前,我登录的用户与这个SQL服务器没有任何关系。(事实上,我正在尝试创建一个新的SA,因为我们不知道当前的密码是什么)
即使我这么做了:
c:\....\sqlservr -m"sqlcmd"我仍然收到上面的错误。我不确定是否有来自其他地方的其他SQLCMD调用。
发布于 2013-10-01 10:20:27
此情况在系统管理员被锁定时连接到服务器中显式调用:
在单用户模式下启动Server实例时,首先停止Server代理服务。否则,Server代理可能首先连接,并阻止您作为第二个用户进行连接。在sqlcmd或中使用-m选项时,可以限制与指定客户端应用程序的连接。例如,
-m"sqlcmd"将连接限制为单个连接,该连接必须将自己标识为sqlcmd客户端程序。当您在单用户模式下启动Server并且未知的客户端应用程序正在获取唯一可用的连接时,请使用此选项。若要通过Management中的查询编辑器进行连接,请使用-m"Microsoft SQL Server Management Studio - Query"。
发布于 2015-06-30 22:34:31
这里有一个潜在的语法问题。尽管正如@RemusRasanu所指出的那样,M.文档M.文档说要使用-m"sqlcmd",如下所示:
例如,-m" sqlcmd“将连接限制为单个连接,该连接必须标识为sqlcmd客户端程序。当您在单用户模式下启动Server并且未知的客户端应用程序正在获取唯一可用的连接时,请使用此选项。
有一些证据表明,参数值中的引号使其无法按预期工作。我在使用单用户模式连接时遇到了问题,从启动参数中删除引号(即使用-mSQLCMD而不是-m"sqlcmd" )对我有用。我用这两种方法做了几次不同的尝试,以验证是否存在因果关系,而这似乎就是事实。也许这是个有问题的案子,但对我来说很管用。
您可以看到SQL日志中的不同之处。例如:
2015-06-30 17:13:41.89 Server Registry startup parameters:
-d c:\Prog[...]\master.mdf
-e c:\Prog[...]\ERRORLOG
-l c:\Prog[...]\mastlog.ldf
-m "SQLCMD"对比
2015-06-30 17:13:41.89 Server Registry startup parameters:
-d c:\Prog[...]\master.mdf
-e c:\Prog[...]\ERRORLOG
-l c:\Prog[...]\mastlog.ldf
-m SQLCMD我从这个ServerFault的答案里偷了这个,所以如果你觉得有用的话,去投票吧:https://serverfault.com/a/338294/3183
https://dba.stackexchange.com/questions/50797
复制相似问题