启用加密后,事件 ID 33566 和SQL Server不会启动
适用于: SQL Server
症状
在 Microsoft SQL Server 配置管理器中,预配服务器端证书并启用加密。 但是,SQL Server服务未启动,并且你会收到以下错误消息:
Windows 无法在本地计算机上启动SQL Server (MSSQLSERVER) 。 有关详细信息,请查看系统事件日志。
如果这是非 Microsoft 服务,请与服务提供商联系,并参阅特定于服务的错误代码 13。
解决方案
检查应用程序日志并验证是否看到类似于以下内容的两个事件条目:
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
如果将无效字符复制到注册表值,则会发生此错误。
若要解决此问题,请使用以下任一方法。
方法 1:使用 SQL Server 配置管理器 预配证书
从以下注册表子项手动删除指纹值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate
使用 Configuration Manager 重新预配证书。
重启SQL Server服务。
方法 2:修复指纹值中的无效字符
选择“ 开始>运行”,输入 mmc,然后在 MMC 控制台 中打开“证书管理单元 ”。
右键单击证书,并将 指纹 值复制到文本文件中。 确保指纹值前后没有空格。
从以下注册表子项手动删除 指纹 值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate
手动粘贴新值,或重新键入从文本文件获取的值。
重启SQL Server服务。