SQL Server 2022 Express无法启动,然后重新安装、卸载,中间各种失败😂,记录一下
操作系统:Windows 11 Pro (从Windows 10升级而来,后来貌似又直接重装了Windows 11)
SQL Server版本:SQL Server Express 2022(最后换成Developer版本安装的)
之前一直是正常使用的,每当需要使用的时候,就手动启动MSSQL服务。但是这天启动的时候,启动失败了。
一开始以为是更换硬盘的问题(换硬盘的时候,之前用DiskGenius做了系统迁移),确实,跟换硬盘应该是有关系。通过给服务加参数,能正常启动了。
后来又想试试重装一下,看看不加参数能否正常启动。然后就掉坑里了,卸载之后,重新安装,各种报错,然后尝试修复,也不成功。卸载,重装,修复,卸载,重装,修复...... 不断重复,各种报错。到了下班的时候,卸载报错,没法卸载,然后修复也不成功,也没法重新安装,这下可把我难住了😂。
到了第二天,又试了安装第二个实例,这第二个实例安装成功,有点信心了。又实验了几次,也不断在网上搜资料,好在最后安装成功了。总结一下,之前安装卸载的报错,应该还是卸载之后清理的不彻底的问题。虽然中间有过清理注册表,但是还有其他安装的SQL Server相关的产品没有卸载,估计也有影响吧。
下面记录一下操作过程中遇到的各种问题及解决方法。
一、卸载之后进行清理,保证卸载干净
- Win+R打开运行输入services.msc查看所有服务,停止所有与SQL Server有关的服务
- 进入控制面板,卸载所有与SQL Server有关的程序(所有相关的程序都要卸载,最开始只是卸载了SQL Server和SQL Server Setup,还有一些应用比如SQL Server VSS Writer/ SQL Browser / SQL Native Client / Microsoft OLE DB Driver for SQL Server / Microsoft ODBC Driver for SQL Server以及其他的,一开始没卸载。后面尝试多次安装卸载,都不成功。需要多检查一下,SQL相关的尽量都卸载掉)
- 删除相关的文件夹
(1)删除安装Microsoft SQL Server数据库物理路径
D:\Program Files\Microsoft SQL Server
(2)删除系统默认的安装文件夹(如果没修改过的话,是下面这两个文件夹)
C:\Program Files\Microsoft SQL Server
C:\Program Files (x86)\Microsoft SQL Server
- 删除Sql Server相关注册表
(1)找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager,删除右边”PendingFileRenameOperations”这一项。【这个自己没删除,貌似不影响】
(2)删除HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server【✅】
(3)删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下所有关于Microsoft SQL Server的子项【✅】
(4)删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer。【这个貌似在卸载完SQL Server相关的软件之后,系统就把它删掉了,所以也没手动删除】 - 卸载完成并清理完后,重启一下电脑
参考文档:【https://blog.csdn.net/qq_42423373/article/details/105323041】
二、安装需要注意的地方及遇到的问题和解决方案
1. 安装之前,关掉防火墙,退出杀毒软件
2. 安装之前,提前改一下注册表,让Windows 11强制模拟4k的扇区
- Run Registry Editor as an administrator.
- Navigate to Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device.
- Select Edit > New > Multi-String value and name it as
ForcedPhysicalSectorSizeInBytes.- Right-click the name, select Modify, and type
* 4095in the Value data field.- Select OK and close Registry Editor.
- You must reboot the device after adding the registry key for this change to take effect.
ref:【https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/database-file-operations/troubleshoot-os-4kb-disk-sector-size?tabs=registry-editor】
3. 每次安装到 Running action: SqlBrowserConfigAction_install_ConfigNonRC_Cpu32 的时候都报错,然后安装失败(SQL Server服务管理器里面找不到服务,也就是服务没能安装成功)
错误信息如下:
The following error has occurred:
Locating the SQL Server Browser service component failed with Windows Installer return code '2'. The Component ID: '{2E86FD41-C179-456E-8E6A-5157ED427228}'.
Click 'Retry' to retry the failed action, or click 'Cancel' to cancel this action and continue setup.
这个原因大概是卸载的时候,只卸载了SQL Server,没同时卸载SQL Server相关的软件比如前面提到的SQL Server VSS Writer/ SQL Browser / SQL Native Client / Microsoft OLE DB Driver for SQL Server / Microsoft ODBC Driver for SQL Server以及其他的。因为一开始没卸载,所以后面安装的时候一直安装不成功。
相关的软件都卸载完成之后,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下面本来有的 Microsoft SQL Server 2005 Redist / Microsoft SQL Server 2012 Redist / Microsoft SQL Server Local DB 等也都没了,不用手动清理。
如果相关软件卸载之后,安装还是到这个地方报错,可以尝试改注册表,删掉 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server 2005 Redist 等类似的信息。
参考【https://www.cnblogs.com/beihainanzhu/p/15715397.html】
三、过程中遇到的其他问题及尝试的解决方案
1. 没重装之前尝试启动SQL Server主服务
根据日志文件,搜了一下,找到了一篇文章。里面讲,日志里面有 There have been 256 misaligned log IOs which required falling back to synchronous IO. 这段,大概率是Windows11 处理磁盘扇区的方式有变化,而SQL Server并不支持。所以可以通过给主服务启动时添加 "-T1800" 来尝试启动。实验之后,确实可以。
参考1:【https://learn.microsoft.com/en-us/answers/questions/1117792/sql-express-2022-database-engine-recovery-handle-f】
参考2:【https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/database-file-operations/troubleshoot-os-4kb-disk-sector-size?tabs=registry-editor】
2. SQL Server 卸载,卡在 "Running action: SqlEngineConfigAction_remove_validation_Cpu64"
用安装程序修复,然后再去卸载,还是卡在这里。
最后,进管理器,把SQL Server主服务的启动模式改回自动,就好了。
参考【https://cloud.tencent.com/developer/ask/sof/111712311】
后来重新安装,再卸载,还是遇到这个问题的时候,上面这种方式又不管用了。尝试修改注册表,但不确定是不是修改注册表导致的成功卸载,还是说到了这个地方就是需要等一段时间(记录一下,备用)。
修改注册表使能卸载:
在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\下面,新建Key,key值是AppCompat(如果已经有了就不用新建)。
然后再在下面新建32位DWORD值。值名称sbEnable,值value是1(不要建String值,似乎不行。最开始的时候不知道建什么类型,就建的String值,不管用,不知道是不是这个原因,后来建的DWORD值,反正是卸载成功了😄)。
下面参考2文章中说也要在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\下面去新建,但是貌似已经跟上面的联动,上面新建,这个地方也自动新建了。上面删掉的时候,下面这里也是删掉了。
参考1:【https://www.daktronics.com/en-us/support/kb/DD4144802】
参考2:【https://www.askvg.com/3-application-compatibility-registry-tweaks-to-boost-windows-vista-and-windows-7-performance/】
3. 修复SQL Server的时候,提示 The file MSODBCSQL.MSI is not valid installation package for the product Microsoft ODBC Drive 17 for SQL Server. Try to find the installation package 'msodbcsql.msi' in a folder from which you can install Microsoft ODBC Driver 17 for SQL Server.
进控制面板,把之前安装的Microsoft ODBC Driver 17 删掉,然后去微软官网重新下一个Microsoft ODBC Driver 17 ,再安装,然后再修复,就正常修复安装了,不会再报这个错误。
4.完全卸载SQL Server
参考
【https://blog.csdn.net/qq_42423373/article/details/105323041】
【https://blog.csdn.net/qq_36171287/article/details/88760739】
【https://www.sql-easy.com/learn/how-to-uninstall-sql-server/】
5. 附加之前的数据库文件时,提示"CREATE FILE encountered operating system error 5(Access is denied.)"。
解决方法:找到数据库mdf及ldf文件,右键,属性,给Authenticated Users赋予完全控制的权限,然后再去附加之前的数据库文件就没问题了。
参考文档:【https://blog.csdn.net/ibsfn/article/details/80770855】
6. 其他参考文档
Windows 11 安装 SQLSERVER 出现问题解决
https://cloud.tencent.com/developer/article/2515628

浙公网安备 33010602011771号