2

我正在尝试恢复本地 sql server 的 sa 密码。

我读到我应该把它放在单用户模式下,我做到了。

我添加了 -m; 到启动参数。

我没有运行 sql 代理,我重新启动了 Sql Server。

当我尝试:

sqlmd -S .\sqlexpress

我收到消息:

Login failed for the user 'mydomain\myuser'. reason: server is in single user mode.
only one administrator can connect at this time.

我还尝试将启动参数更改为:

-mSQLCMD

但我得到同样的错误。

4

4 回答 4

9

你试过了吗:

NET STOP MSSQLSERVER

… give it a minute … 

NET START MSSQLSERVER /m
于 2012-05-22T19:45:02.463 回答
1

对我有用的东西基本上是一样的,但我没想到我应该做什么。

网络停止 [MSSQLSERVERName]

NET START [MSSQLSERVERName] /m /c /f

不行(但实际上这是有效的)

现在,起初我认为没有任何改变,因为我收到了服务器无法启动的失败消息。我还检查了 sql server 配置管理器并检查了服务状态。它通常读取开始或停止的位置,它读取挂起的更改。

意外挂起

我无法停止或重新启动该服务并认为它已挂起,因此我重新启动了计算机。直到后来我弄清楚如何解决问题时,我才意识到“待更改”可能是我想要看到的结果(我猜,“待更改”意味着现在就解决问题)。

启动并运行

我再次尝试了 net start 命令,然后再次检查了 sql 配置管理器——再次“等待更改...”——。但是,这次我启动了 Sql Server Management Studio,我又重新开始工作了,谢天谢地!

-c
独立于服务控制管理器启动 SQL Server 服务。这样做可以加快启动速度。

-f 此标志以最少的配置启动 SQL Server,并允许更新系统表。如果 DBA 调整了配置选项以使服务无法启动,这将很有用。如果您发现自己处于这种情况,您会喜欢“-f”标志,因为这可能是纠正 SQL Server 配置中的错误的唯一方法。

-m
以单用户模式启动 SQL Server。这意味着一次只有一个用户可以连接到服务器,并且允许对系统表进行临时更新。此外,-m 选项不会启动 CHECKPOINT。当系统数据库之一损坏并且您必须从备份中重新加载它时,单用户模式很有用。

于 2014-01-01T10:46:41.060 回答
1

Microsoft 建议您不应该通过命令行启动 sqlserver.exe,而是进行测试:“SQL Server 只能从命令提示符启动以进行故障排除”:

https://technet.microsoft.com/en-us/library/ms180965(v=sql.105).aspx

这也建议不要使用 net stop,因为它会导致不可预测的结果。

重置sa密码的解决方法是单用户模式启动sql server;这是使用 -m 标志实现的,这应该按照 MSDN 上的建议通过 SQL Server 配置管理器进行设置;请参阅分步说明的第 4 步:

https://msdn.microsoft.com/en-us/library/dd207004.aspx

如果要在 SSMS UI 中重置密码,则必须首先告诉 SQL 配置管理器 SSMS 将启动 SQL Server;

因此,除了 SQL 配置管理器中 SQL Server 属性的高级选项卡上启动参数的开头之外,您的 -m 标志应该如下(包括分号)如下

-m”Microsoft SQL Server Management Studio – 查询”;

如果您不这样做,那么您将在 SSMS 中收到一条警告,告知它无法使用 sa 登录,因为它处于单用户模式。

完成后请记住删除此启动标志。

进入单用户模式后,您应该能够重置密码: 打开 SSMS:

  1. 展开安全文件夹
  2. 右键单击sa帐户
  3. 更改密码
于 2015-07-31T13:22:18.480 回答
0

确保所有SQL Server 服务都已停止,但SQL Server 实例本身除外。我浪费了一个小时试图解决这个问题,只是发现 SQL Server VSS Writer 服务一直在运行,并且在实例以单用户模式启动时立即连接。我不得不手动停止它,然后才能登录并解锁 sa 帐户。

于 2016-01-04T21:54:54.137 回答