- 相关推荐
SQLServer连接中常见错误解决方法
SQL Server 中的连接问题有多种原因。 接下来,小编用收集到的SQLServer连接中常见错误解决方法,希望能帮助大家解决这一问题,从而更好的访问sql数据库。
一、sqlserver不存在或访问被拒绝
分析:此问题最为复杂,由于错误发生的原因比较多,所以需要检查很多方面。
一般情况下,有几种可能性:
1.sql server名称或ip地址拼写有误。
2.服务器端网络配置有误。
3.客户端网络配置有误。
要解决此问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接
ping <服务器ip地址>
假如ping<服务器ip地址>不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,hub,路由器等.。
另外还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如isaserver。
防火墙软件可能会屏蔽对ping,telnet等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
如果ping<服务器ip地址>成功而,ping<服务器名称>失败则说明名字解析有问题,这时候要检查dns服务是否正常。
有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用hosts文件来进行名字解析,具体的方法是:
1.使用记事本打开hosts文件(一般情况下位于c:winntsystem32driversetc)。
添加一条ip地址与服务器名称的对应记录,如:
172.168.10.24 myserver
2.或在sqlserver的客户端网络实用工具里面进行配置,后面会有详细说明。
其次,使用telnet命令检查sqlserver服务器工作状态
telnet <服务器ip地址> 1433
如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明sqlserver服务器工作正常,并且正在监听1433端口的 tcp/ip 连接。
如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动sqlserver服务, 也可能服务器端没启用 tcp/ip 协议,或者服务器端没有在sqlserver默认的端口1433上监听。
接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道.是否启用了tcp/ip协议等等
可以利用 sql server 自带的服务器网络使用工具来进行检查。
点击:程序—microsoft sql server—服务器网络使用工具。
打开该工具后,在“常规”中可以看到服务器启用了哪些协议。
一般而言,我们启用命名管道以及 tcp/ip 协议.
点中 tcp/ip 协议,选择"属性",我们可以来检查 sqk server服务默认端口的设置.一般而言,我们使用 sqlserver默认的1433端口.如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。
接下来我们要到客户端检查客户端的网络配置
我们同样可以利用 sql server自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具.
点击:程序—microsoft sql server—客户端网络使用工具。
打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议。
一般而言,我们同样需要启用命名管道以及tcp/ip 协议。
点击tcp/ip协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致。
单击"别名"选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用hosts文件有相似之处。
通过以上几个方面的检查,基本上可以排除第一种错误。
二、无法连接到服务器,用户xx-x登陆失败
该错误产生的原因是由于sql server使用了"仅windows"的身份验证方式,
因此用户无法使用sqlserver的登录帐户(如sa)进行连接,解决方法如下所示:
1.在服务器端使用企业管理器,并且选择"使用windows身份验证"连接上sqlserver在企业管理器中
—右键你的服务器实例(就是那个有绿色图标的)
—编辑sql server注册属性
—选择"使用windows身份验证"
2.展开"sql server组",鼠标右键点击sqlserver服务器的名称,选择"属性",再选择"安全性"选项卡。
3.在"身份验证"下,选择"sql server和 windows "。
4.重新启动sql server服务。
在以上解决方法中,如果在第1步中使用"使用windows身份验证"连接sql server失败, 那就通过修改注册表来解决此问题:
1.点击"开始"—"运行",输入regedit,回车进入注册表编辑器。
2.依次展开注册表项,浏览到以下注册表键:
[hkey_local_machinesoftwaremicrosoftmssqlservermssqlserver]
3.在屏幕右方找到名称"loginmode",双击编辑双字节值。
4.将原值从1改为2,点击"确定"。
5.关闭注册表编辑器。
6.重新启动sql server服务。
此时,用户可以成功地使用sa在企业管理器中新建sqlserver注册,
但是仍然无法使用windows身份验证模式来连接sql server。
这是因为在sql server中有两个缺省的登录帐户:
builtinadministrators
<机器名>administrator 被删除。
要恢复这两个帐户,可以使用以下的方法:
1.打开企业管理器,展开服务器组,然后展开服务器
2.展开"安全性",右击"登录",然后单击"新建登录"
3.在"名称"框中,输入 builtinadministrators
4.在"服务器角色"选项卡中,选择"system administrators"
5.点击"确定"退出
6.使用同样方法添加 <机器名>administrator 登录。
详细说明:
以下注册表键:
hkey_local_machinesoftwaremicrosoftmssqlservermssqlserverloginmode的值决定了sqlserver将采取何种身份验证模式.
1.表示使用"windows 身份验证"模式
2.表示使用混合模式(windows 身份验证和 sql server身份验证)。
三、提示连接超时
如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。
这种情况一般会发生在当用户在internet上运行企业管理器来注册另外一台同样在internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误.有些情况下,由于局域网的网络问题,也会导致这样的错误。
要解决这样的错误,可以修改客户端的连接超时设置.默认情况下,通过企业管理器注册另外一台sql server的超时设置是4秒,而查询分析器是15秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).
具体步骤为:
企业管理器中的设置:
1.在企业管理器中,选择菜单上的"工具",再选择"选项"
2.在弹出的"sqlserver企业管理器属性"窗口中,点击"高级"选项卡
3.在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如20.
查询分析器中的设置:
工具—选项—连接—将登录超时设置为一个较大的数字
四、大部分机都用tcp/ip才能成功,有时你会发现用namedpipes才可以?
这是由于在windows 2000以后的操作系统中,ms为解决sqlserver的安全问题将tcp/ip配置为sqlserver的默认连接协议,你可以在client networkutility中看到tcp/ip和name pipe 的顺序。
也可以在:
[hkey_local_machinesoftwaremicrosoftmssqlserverclientsupersocketnetlib]
"protocolorder"=hex(7):74,00,63,00,70,00,00,00,00,00
此处可以看到默认的协议。
问:怎么在程序中更改namedpipes,tcp/ip其sql语句怎么写?
答:可以在以上提到的注册表的相对位置来修改,示例如下:
·client端:
[hkey_local_machinesoftwaremicrosoftmssqlserverclientsupersocketnetlib]
"protocolorder"=hex(7):74,00,63,00,70,00,00,00,00,00
·server端:
[hkey_local_machinesoftwaremicrosoftmssqlservermssqlserversupersocketnetlib]
"protocolorder"=hex(7):74,00,63,00,70,00,00,00,00,00
其他常见错误
1.检查网络物理连接
ping 服务器名称 或者 ping 服务器ip地址
===》ping 服务器ip地址失败 :说明物理连接出问题,需要检查硬件设备;需要注意将防火墙关掉,因为它也许会屏蔽你的ping命令
===》ping 服务器ip地址成功 ping 服务器名称失败:说明服务器名称有问题。如果服务器和客户端不在同一局域网内,很可能无法直接使用服务器名称标志服务器。
2.使用telnet命令检查sql server服务器工作状态
telnet 服务器ip地址 14323(默认端口号)
===>如果有“无法打开连接”的信息,说明你的sql server服务没开启,或者你的tcp/ip协议没有启用,或者你的服务器没有在端口1433上监听
3.检查服务器端的网络配置,看是否启用命名管道,是否启用tcp/ip协议
这个可以在不同版本的sql server自带的工具管理器里找到,比如2000是服务器网络使用工具 2017是sql server配置管理器
4.检查客户端的网络配置,查看使用的协议
一般需要启用命名管道;
b-用户sa登入失败
错误有以下可能:
1.你的登入身份为“仅windows身份登入”
2.你改完登入方式后,设置账户后没有运行sp_password
第一个原因解决方法:以2000为例:
1.在服务器端使用企业管理器,并且选择"使用 windows 身份验证"连接上 sql server
2.展开"sql server组",鼠标右键点击sql server服务器的名称,选择"属性",再选择"安全性"选项卡
3.在"身份验证"下,选择"sql server和 windows ".
4.重新启动sql server服务.
在以上解决方法中,如果在第 1 步中使用"使用 windows 身份验证"连接 sql server 失败,那就通过修改注册表来解决此问题:
1.点击"开始" "运行",输入regedit,回车进入注册表编辑器
2.依次展开注册表项,浏览到以下注册表键:
[hkey_local_machinesoftware microsoft mssqlserver mssqlserver]
3.在屏幕右方找到名称"loginmode",双击编辑双字节值
4.将原值从1改为2,点击"确定"
5.关闭注册表编辑器
6.重新启动sql server服务;
--or
use[master]
go exec xp_instance_regwrite nhkey_local_machine, nsoftware/microsoft/mssqlserver/mssqlserver, nloginmode, reg_dword,2go
此时,用户可以成功地使用sa在企业管理器中新建sql server注册,但是仍然无法使用windows身份验证模式来连接sql server。这是因为在 sql server 中有两个缺省的登录帐户:builtinadministrators 以及<机器名>administrator 被删除。要恢复这两个帐户,可以使用以下的方法:
1、打开企业管理器,展开服务器组,然后展开服务器;
2、展开"安全性",右击"登录",然后单击"新建登录";
3、在"名称"框中,输入 builtinadministrators;
4、在"服务器角色"选项卡中,选择"system administrators" ;
5、点击"确定"退出;
6、使用同样方法添加 <机器名>administrator 登录。
以下注册表键
hkey_local_machinesoftwaremicrosoftmssqlservermssqlserverloginmode
的值决定了sql server将采取何种身份验证模式。该值为1,表示使用windows 身份验证模式;该值为2,表示使用混合模式(windows 身份验证和 sql server 身份验证)。
第二个原因解决方法:sql server2017为例
1、登陆设置改为,sql server and windows authentication方式同时选中,
具体设置如下:
manage管理器->windows authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>sqlserver and windows authentication方式同时选中.
2、设置一个sql server方式的用户名和密码,具体设置如下:
manage管理器->windows authentication>new query>sp_password null,sa123456,sa 这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用sql server方式, 用户名为sa ,密码为:sa123456的用户进数据库了.
3、用ssms运行的 sp_password null,sa123456,sa 然后重新启动sql;
c-连接超时
如果遇到这样的错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。
这种情况比较少见,一般发生在当用户在internet上运行企业管理器来注册另外一台同样在internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。
有些情况下,由于局域网的网络问题,也会导致这样的错误。
要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台sql server的超时设置是 4 秒,而查询分析器是 15 秒。
具体步骤为:
企业管理器中的设置:
1、在企业管理器中,选择菜单上的"工具",再选择"选项";
2、在弹出的"sql server企业管理器属性"窗口中,点击"高级"选项卡;
3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。
查询分析器中的设置:
单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0
d-登入的1069错误:
症状:
由于更改了你的计算机名字,再次启动时,就会发生“由于登入失败而无法启动服务”的情况。
解决方法:
1.改回你的计算机名字;
2.使用控制面板,找到ms server服务,更改启动账号信息到安装时候的信息,再启动服务;
3.创建一个用户,专门用于启动服务,安装sql的时候就用该用户启动sql server,这样可以避免频繁更改administrator带来的1069错误。
即使已经安装好了sql server,你也可以在控制面板下的服务里的服务账号信息更改到那个专门启动的用户。
e-连接sql server 201718452/18456错误
f-sql server 2017 错误233的解决办法
g-sql server express 2017无法使用sa用户登陆解决
在安装vs2017/2017(我机器上安装的vs2017)时会默认把sql server express 2017安装上,默认安装时并没有打开远程连接及sa用户登陆功能
无法使用sa用户登陆解决方案
解决方法如下,打microsoft sql server management studio express,以windows验证方式登陆,打开服务器属性窗口(在数据库服务器图标上点右键选"属性"),选择"安全性"选项
服务器验证方式选择sql servertt和windows验证方式,确认
然后再到"安全性-登陆名"处设置sa用户属性
设置密码
解决方法:打开“开始—所有程序—microsoft sql server 2017 —配置工具—sql server 配置管理器”,在弹出的窗体中,找到“sql server 2017 网络配置”,把“mssqlserver的协议”下的“named pipes”和“tcp/ip”启用,然后重新启动sql server 即可。
证书错误时
症状:
当连接到 SQL Server 时,你可能会收到以下错误消息:
已成功与服务器建立连接,但是在登录过程中发生错误。 (提供程序: SSL 提供程序,错误: 0 - 证书链是由不受信任的颁发机构颁发的。) (.Net SqlClient 数据提供程序)
解决方法:
1、导出服务器证书
1.本例使用名为“caCert.cer”的文件作为证书文件。 你必须从服务器获取此证书文件。 以下步骤说明如何将服务器证书导出到文件:
2.依次单击“开始”和“运行”,然后键入“MMC”。 (MMC 是 Microsoft 管理控制台的英文首字母缩略词。)
3.在 MMC 中,打开“证书”。
4.展开“个人”,然后展开“证书”。
5.右键单击服务器证书,然后选择“所有任务导出>”。
6.单击“下一步”跳过“证书导出”向导的“欢迎”对话框。
7.确认“否,不要导出私钥”处于选中状态,然后选择“下一步”。
8.确保已选择“DER 编码的二进制 X.509 (.CER)”或“Base-64 编码的 X.509 (.CER)”,然后单击“下一步”。
2、输入导出文件名。
1.单击“下一步”,然后单击“完成”以导出证书。
2.在客户端计算机上安装根证书颁发机构 (CA)
3.在客户端计算机上启动 MMC 的证书管理单元,然后添加证书管理单元。
4.在“证书管理单元”对话框中,选择“计算机帐户”,然后选择“下一步”。
5.在“选择计算机”窗格中,选择“本地计算机: (此主机在) 上运行的计算机,然后选择”完成”。
6.选择“确定”以关闭“添加或删除管理单元”对话框。
7.在 MMC 的左窗格中,展开“证书 (本地计算机)节点。
8.展开“受信任的根证书颁发机构”节点,右键单击“证书”子文件夹,选择“所有任务”,然后选择“导入”。
9.在“证书导入向导”的“欢迎”页上,选择“下一步”。
10.在“要导入的文件”页上,选择“浏览”。
11.浏览到caCert.cer证书文件的位置,选择该文件,然后选择“打开”。
12.在“要导入的文件”页上,选择“下一步”。
13.在“证书存储”页上,接受默认选择,然后选择“下一步”。
14.在“完成证书导入向导”页上,选择“完成”。
对于方案 1 和 2,请在客户端应用程序中将“信任服务器证书”设置设置为true。
【SQLServer连接中常见错误解决方法】相关文章:
SQL数据库连接常见错误的解决方法09-22
宽带连接错误651的原因及解决方法03-16
电脑硬盘的常见错误提示及解决方法09-22
Matlab常见语法错误及解决方法转02-26
宽带连接失败的解决方法03-04
应用程序中的服务器错误及解决方法02-28
错误711的解决方法09-22
explorerexe错误的解决方法09-22