事件 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) 属性对话框的“启动参数”选项卡的屏幕截图。

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

    子项 Data
    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

    <日期/时间><DIR> 。
    <日期/><时间 DIR> ..
    <Datetime> 20,640 ERRORLOG
    <Datetime> 14,082 ERRORLOG.1

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

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

  5. 重新启动 SQL Server 服务。