启用加密后,事件 ID 33566 和SQL Server不会启动

适用于: SQL Server

症状

在 Microsoft SQL Server 配置管理器中,预配服务器端证书并启用加密。 但是,SQL Server服务未启动,并且你会收到以下错误消息:

Windows 无法在本地计算机上启动SQL Server (MSSQLSERVER) 。 有关详细信息,请查看系统事件日志。
如果这是非 Microsoft 服务,请与服务提供商联系,并参阅特定于服务的错误代码 13。

解决方案

  1. 检查应用程序日志并验证是否看到类似于以下内容的两个事件条目:

    Log Name:      Application  
    Source:        MSSQLSERVER  
    Date:          <Datetime>
    Event ID:      33556  
    Task Category: Server  
    Level:         Error  
    Keywords:      Classic  
    User:          N/A  
    Computer:      <Server name> 
    Description:  
    Invalid character in the thumbprint [Cert Hash(sha1) " \<Cert Hash number"].
    Please provide a certificate with a valid thumbprint.
    

    注意

    此错误通常表示未通过 Configuration Manager 预配证书。 它是通过将指纹值手动复制到以下注册表项来预配的:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate

    如果将无效字符复制到注册表值,则会发生此错误。

  2. 若要解决此问题,请使用以下任一方法。

    方法 1:使用 SQL Server 配置管理器 预配证书

    1. 从以下注册表子项手动删除指纹值:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate

    2. 使用 Configuration Manager 重新预配证书。

    3. 重启SQL Server服务。

    方法 2:修复指纹值中的无效字符

    1. 选择“ 开始>运行”,输入 mmc,然后在 MMC 控制台 中打开“证书管理单元 ”。

    2. 右键单击证书,并将 指纹 值复制到文本文件中。 确保指纹值前后没有空格。

    3. 从以下注册表子项手动删除 指纹 值:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate

    4. 手动粘贴新值,或重新键入从文本文件获取的值。

    5. 重启SQL Server服务。