一、起因
原来安装过SqlServer 2008 R2,后来不用卸载了(没清理,单卸载),之后一直通过Navicat远程连接服务器的SqlServer使用。
前两天工作需要,又安装了SqlServer,虽然安装进程顺利,但是安装之后,通过SqlServer自带的图形化管理界面(SqlServer management studio)可以连接,
但是Navicat连接报错。
报的错如下图:
[08001] [Microsoft][SQL Server Native Client 11.0]Registry information is corrupt or missing. Make sure the provider is installed andregistered correctly. (27)
[08001] [Microsoft][SQL Server Native Client 11.0]Client unable to establish connection (27)
[08001] [Microsoft][SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server.
Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured toallow remote connections. For more information see SQL Server Books Online. (0)
原意是指“注册表信息损坏,客户端无法建立连接”等意思,但是Navicat刚重装过,而且连接MySQL正常,所以排除Navicat的问题。
二、解决方式
所以开始怀疑是不是SqlServer安装的有问题或者没清理干净,于是开始清理SqlServer。
- 首先,运行卸载程序,一步步卸载,控制面板所有与SqlServer有关的通通卸载
- 之后,查了一下SqlServer的注册表清理项,一看真不少。
1.彻底删除SQL Server:
hkey_local_machine/software/Microsoft/MSSQLServer
hkey_local_machine/software/Microsoft/Microsoft SQL Server
hkey_current_user/software/Microsoft/Microsoft SQL Server
hkey_current_user/software/Microsoft/MSSQLServer
hkey_local_machine/system/currentcontrolset/control/sessionmanager/pendingfileren ameoperations
2.注册表中的相关信息删除:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/MSDTC
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager中找到PendingFileRenameOperations项目
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/setup删除ExceptionComponents
3、运行注册表,删除如下项:
HKEY_CURRENT_USER/Software/Microsoft/Microsoft SQL Server
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer
有一些项目是没有的,就直接忽略就可以的,只要把有的注册表删掉就好了,注意千万不要删错!
删除之后记得重启一遍,然后重新安装,安装步骤参考的https://zhuanlan.zhihu.com/p/35337198
至此问题应该就没有了, 都可以正确使用了。