问题描述
在运行 SQL Server 服务时,发现服务无法启动。需要查看 SQL Server 联机丛书中的主题“如何查”以获取详细信息。
解决方案
步骤1:查看错误日志
首先,我们需要查看 SQL Server 的错误日志以获取更多关于服务无法启动的详细信息。错误日志通常位于 SQL Server 安装目录的 LOG
文件夹下。请按照以下步骤查看错误日志:
- 打开 Windows 文件资源管理器,并导航到 SQL Server 安装目录。
- 进入
LOG
文件夹,找到最新的错误日志文件(文件名类似ERRORLOG
)。 - 右键单击该文件,选择使用文本编辑器打开。
在错误日志中,您可以查找关键字如 Error
、Fail
、Exception
等,以了解服务启动失败的原因。您还可以找到错误代码,如 Error: 17113
,这将有助于我们进一步的故障排除。
步骤2:检查服务账户权限
服务无法启动的另一个常见原因是服务账户没有足够的权限来执行所需的操作。请按照以下步骤检查服务账户权限:
- 打开
服务
窗口。在 Windows 10 上,您可以按下Win + R
键,然后输入services.msc
并按下回车键。 - 找到 SQL Server 服务(通常命名为
SQL Server
或MSSQLSERVER
)并右键单击该服务,选择属性
。 - 在服务属性对话框的
登录
选项卡中,确保选择了一个有效的服务账户。您可以尝试切换到本地系统账户
或网络服务账户
,然后尝试重新启动服务。
步骤3:检查端口冲突
SQL Server 在启动时需要监听特定的端口来接收客户端请求。如果其他应用程序或服务正在占用 SQL Server 所需的端口,则会导致服务无法启动。请按照以下步骤检查端口冲突:
- 打开 SQL Server 配置管理器。在 Windows 10 上,您可以按下
Win + R
键,然后输入SQLServerManager<版本号>
并按下回车键。 - 在 SQL Server 配置管理器中,选择
SQL Server 网络配置
,然后选择TCP/IP
。 - 右键单击
TCP/IP
,选择属性
。在IP 地址
选项卡中,找到IPAll
节点并查看TCP 动态端口
的值。这是 SQL Server 正在使用的端口。 - 打开命令提示符(使用管理员权限),输入以下命令来查找正在使用该端口的进程:
netstat -ano | findstr :<端口号>
,将<端口号>
替换为上一步中找到的端口号。 - 结果将显示正在使用该端口的进程 ID。
- 打开任务管理器,切换到
详细信息
选项卡,在PID
列中找到相应的进程 ID。 - 如果发现该进程是一个不必要的应用程序或服务,可以尝试终止该进程或更改其使用的端口。
步骤4:重建系统数据库
如果上述步骤都失败了,最后的尝试是重建 SQL Server 的系统数据库。请按照以下步骤执行:
- 打开命令提示符(使用管理员权限)。
- 输入以下命令来停止 SQL Server 服务:
net stop MSSQLSERVER
,将MSSQLSERVER
替换为实际的服务名称。 - 切换到 SQL Server 安装目录,找到
Binn
文件夹。 - 运行以下命令来重建系统数据库:
cd C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn
sqlservr.exe -sMSSQLSERVER -m"SQLCMD" -T3608
其中,`M