项目场景:MSSQL镜像服务器后无法连接
服务查看SQL server进程名为
连接实例名:./SQLEXPRESS
以单用户模式启动这个实例,可以按照以下步骤操作:
关闭SQL Server服务:
在命令提示符(以管理员身份运行)中,关闭服务:
Cmd
net stop MSSQL$SQLEXPRESS
以单用户模式启动SQL Server服务:
在命令提示符中,使用以下命令启动SQL Server服务,并指定单用户模式:
Cmd
net start MSSQL$SQLEXPRESS /m
尝试连接:
现在,SQL Server应该以单用户模式运行,此时只有极少数连接能够成功,优先给本地管理员提供连接权限。立即尝试使用具有管理员权限的账户(最好是Windows管理员账户)通过SQL Server Management Studio或sqlcmd工具连接到SQL Server实例。
执行必要的操作:
连接成功后,可以执行如重置sa或其他账户密码的操作:
Sql
ALTER LOGIN sa WITH PASSWORD = ‘NewStrongPassword’ MUST_CHANGE, CHECK_POLICY = ON;
注意事项:
单用户模式下,如果有其他进程占用了连接,您可能无法连接。确保没有其他应用程序或服务在运行时尝试连接到SQL Server实例。
在完成必要操作后,记得关闭当前连接,然后停止SQL Server服务,然后以正常模式重新启动服务,以允许其他客户端连接:
Cmd
net stop MSSQL$SQLEXPRESS
net start MSSQL$SQLEXPRESS
如果以单用户模式启动SQL Server后仍然无法连接,可能的原因和解决步骤如下:
启动参数传递不正确:
确保在启动SQL Server服务时正确设置了单用户模式参数。例如,对于默认实例,可以尝试在命令提示符(以管理员身份运行)中使用如下命令:
Cmd
NET STOP MSSQLSERVER
NET START MSSQLSERVER /m
如果是命名实例,则替换为:
Cmd
NET STOP MSSQL$instancename
NET START MSSQL$instancename /m
确保命令中的实例名称与实际实例一致。
已有其他连接占用:
单用户模式下,SQL Server通常只允许一个连接。请确保在尝试连接前没有任何其他连接占用(包括SQL Server Agent作业、数据库邮件、或任何保持活动连接的应用程序)。
连接方式不正确:
即使在单用户模式下,也需要使用合适的登录方式进行连接。尝试使用本地管理员账户(该账户应具有SQL Server的sysadmin权限),并通过Windows身份验证尝试连接。
SQL Server服务未启动:
检查SQL Server服务是否已成功启动。在“服务”管理工具中确认服务状态。
网络配置问题:
尽管是本地连接,但网络协议配置错误也可能导致连接失败。确保TCP/IP协议已启用,并且SQL Server Browser服务(对于命名实例)也在运行。
错误日志检查:
检查SQL Server错误日志,定位具体为何无法连接,错误日志通常位于C:\Program Files\Microsoft SQL Server\MSSQL.n.<instance_name>\MSSQL\Log目录下。
查看SQL进程号
EXEC sp_readerrorlog 0, 1, 'listening';