事件 ID 17058 和 SQL Server 未启动

适用于: SQL Server

症状

如果 Microsoft SQL Server 服务找不到配置为创建错误日志的路径,则服务不会启动,并且你会收到以下错误消息,具体取决于尝试启动服务的方式:

  • 使用服务小程序:

    Windows 无法启动本地计算机上的SQL Server (MSSQLSERVER) 服务。
    错误 1067:进程意外终止。

  • 使用命令提示符:

    SQL SERVER (MSSQLSERVER) 服务正在启动。
    无法启动SQL Server (MSSQLSERVER) 服务。
    发生特定于服务的错误:13。
    键入 NET HELPMSG 3523 可获得更多帮助。

解决方案

  1. 检查应用程序日志,并验证是否看到类似于以下内容的错误消息条目:

    Log Name:      Application  
    Source:        MSSQLSERVER  
    Date:          <Datetime>  
    Event ID:      17058  
    Task Category: Server  
    Level:         Error  
    Keywords:      Classic  
    User:          N/A  
    Computer:      <Server name>  
    Description:  
    initerrlog: Could not open error log file 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVR\MSSQL\Log\ERRORLOG'. 
    Operating system error = 3(The system cannot find the path specified.).  
    
  2. 使用 SQL Server 配置管理器 验证为 ErrorLog 文件设置的路径。

    “SQL Server (MSSQLSERVER) 属性”对话框的“启动参数”选项卡的屏幕截图。

    还可以验证以下注册表项中的路径:

    子项 数据
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\Parameters\SQLArg1 -eC:\Program Files\Microsoft SQL Server\MSSQL15。MSSQLSERVR\MSSQL\Log\ERRORLOG
  3. 尝试复制路径,然后在 Windows 资源管理器中或在命令提示符处手动验证是否可以访问路径中的目标。 (注意拼写错误、特殊字符以及复制和粘贴问题。)

    下面是包含拼写错误的命令示例:

    C:\>dir  "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVR\MSSQL\Log"
    

    系统找不到指定的路径。

    下面是一个正确的命令:

    C:\>dir  "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log"
    

    驱动器 C 中的卷是 Windows
    卷序列号为 40B5-7ED1

    C:\Program Files\Microsoft SQL Server\MSSQL15 目录。MSSQLSERVER\MSSQL\Log

    <Datetime><DIR> 。
    <Datetime><DIR> .
    <Datetime> 20,640 ERRORLOG
    <Datetime> 14,082 ERRORLOG.1

  4. 将路径更新到SQL Server启动帐户有权在其中创建、读取、写入和更新文件的有效文件夹。

    “启动参数”选项卡的屏幕截图,其中显示了可以使用“更新”按钮更新文件夹路径。

  5. 重启SQL Server服务。