上SQL Server登录失败:解决办法汇总

1. SQL Server登录失败的常见原因

在使用SQL Server过程中,有时候会出现登录失败的情况,造成这种情况的原因可能有很多种。下面我们就一一进行介绍。

1.1 用户名或密码错误

在登录SQL Server时,如果用户名或密码输入有误,将无法进行登录。

USE master

GO

EXEC sp_addlogin ‘UserName’,‘password’,‘default_db’

GO

其中 'UserName' 和 'password' 参数分别代表用户名和密码。如果输入有误,将无法进行正确的登录。

1.2 SQL Server服务未启动

在登录SQL Server的时候,如果SQL Server服务未启动,也会无法进行登录。

可以使用以下命令检查SQL Server服务是否已启动:

net start | findstr "SQL Server"

如果未启动,可以使用以下命令启动SQL Server服务:

net start MSSQLSERVER

1.3 SQL Server端口未开放

在远程连接SQL Server时,如果SQL Server端口未开放,也会造成登录失败。默认情况下,SQL Server使用1433端口。

可以使用以下命令检查SQL Server是否正在监听1433端口:

netstat -ano | findstr "1433"

如果未监听,可以使用以下命令打开SQL Server监听端口:

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\IPAll', N'TcpPort', REG_DWORD, 1433

2. 解决SQL Server登录失败的方法

2.1 重置SQL Server访问密码

如果忘记了SQL Server的访问密码,可以使用以下步骤进行重置:

停止SQL Server服务

以单用户模式启动SQL Server,并在启动时添加“-m”参数

使用SQL Server身份验证方式登录

使用以下命令重置密码:

USE master

GO

ALTER LOGIN [sa] WITH PASSWORD='NewPassword'

GO

其中,[sa]代表要重置密码的用户名,‘NewPassword’为新密码。

2.2 修改SQL Server端口号

如果需要修改SQL Server的端口号,可以使用以下命令进行修改:

USE master

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\IPAll', N'TcpPort', REG_DWORD, XXXX

GO

其中,XXXX代表需要修改为的端口号。

2.3 启用SQL Server实例的TCP/IP协议

有时候,在远程连接SQL Server时,可能会遇到“未启用远程连接”的问题,此时需要通过以下步骤启用TCP/IP协议:

打开SQL Server配置管理器。

展开SQL Server网络配置 - 选择SQL Server实例 - 右键选择“属性”

选择“TCP/IP”协议。如果该选项处于禁用状态,则将其启用。

选择“IP地址”选项卡,将“所有IP地址”下的“TCP动态端口”和“TCP端口”更改为要监听的端口号,例如1433。

保存更改并重启SQL Server服务。

2.4 允许SQL Server身份验证方式

在使用SQL Server 身份验证方式登录SQL Server时,有时候可能会遇到“登录失败”问题。此时需要检查是否允许SQL Server 身份验证方式。

可以使用以下命令查看是否允许:

USE master

GO

SELECT name, is_disabled FROM sys.sql_logins

GO

如果 is_disabled 列的值为1,则代表禁用了SQL Server身份验证方式。可以使用以下命令启用:

USE master

GO

ALTER LOGIN [login_name] ENABLE

GO

其中 [login_name] 代表要启用的用户名。

2.5 检查SQL Server托管账户

如果登录SQL Server时,出现托管账户的相关错误信息,可以尝试打开Active Directory服务接口,让SQL Server支持托管账户:

打开CMD命令行窗口,并输入以下命令:

dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess

其中,[D:\sources\sxs]为Windows Server 2012R2安装镜像位置。在Windows Server 2016中,应该替换此路径为‘C:\windows\sources\sxs’。

安装完成后,重启服务器。

重新登录SQL Server。

2.6 重建master数据库

如果SQL Server登录失败的原因无法解决,可以尝试重建master数据库:

停止SQL Server服务。

切换至master.mdf所在目录,以管理员身份打开命令提示符窗口。

输入以下命令重命名master数据库文件:

ren master.mdf master.mdf.bak

ren mastlog.ldf mastlog.ldf.bak

输入以下命令重新创建master数据库:

setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /SAPWD=NewSAPasWd

其中,[NewSAPasWd]为新的系统管理员密码。

重建完成后,启动SQL Server服务。

重新登录SQL Server。

3. 总结

通常情况下,SQL Server登录失败原因主要有用户名或密码输入错误、SQL Server服务未启动、SQL Server端口未开放等。解决这些问题的方法有重置SQL Server访问密码、修改SQL Server端口号、启用SQL Server实例的TCP/IP协议等。

如果以上方法不能解决问题,可以尝试重建master数据库以解决问题。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签