开发者社区> 技术小胖子> 正文

SQL Server 2005 连接本地端口1433开启远程连接/登陆18456错误的解决方法

简介:
+关注继续查看
SQL Server 2005 连接本地端口1433开启远程连接/登陆18456错误的解决方法
出处:http://jimmyli.blog.51cto.com/ 我站在巨人肩膀上Jimmy Li
作者:Jimmy Li
关键词:远程连接,无法连接,1433,SQL SERVER 2005,18456错误
------[连载之电子商务系统架构]访问量超过100万的电子商务网站技术架构
连接:http://jimmyli.blog.51cto.com/3190309/676378 访问量超过100万的电子商务网站技术架构
 
一、SQL SERVER 2005 登陆18456错误的解决方法
 
   很多朋友使用MSsql的时候本机能够正常登陆SQL2005的SQL Server Management Studio。
但是远程无法登陆1433,SQL Server 2005无法远程连接到1433。SQL(Microsoft SQL Server 2005 )登录不上去了,原来是出现了几个小问题,现在记录一下我的解决这几个情况的办法。(解决方法有很多种,这些只是我的解决方法,仅供参考)
 
错误提示:
标题: 连接到服务器
------------------------------
无法连接到 192.1.1.19。
------------------------------
其他信息:
用户 'shop' 登录失败。 (Microsoft SQL Server,错误: 18456)
------------------------------
按钮:
确定
------------------------------
 
查找问题的过程:(注:用windows账号还是可以登录的)
第一步: 启动所有与SQL有关的服务,问题依旧;(后证实与服务无关,只是为排除错误)
第二步: 查看windows防火墙,被默认启动了,不启动选择项被Disabled
两个提示“由于安全考虑,某些设置由组策略控制”“Windows防火墙正在使用您的域设置”,先用gpedit.msc打组策略编辑器,机算机配置-- 管理模板--网络--网络连接--Windows防火墙--标准配置文件,查看右边各选项属性,都是未配置状态,问题不在这里。
另外一个提示中提到域设置,域设置不可能禁用SQL Server,并且我查看本地开放端口(net start ),25,1433,1434都是开发状态。
 

晕,会不会是密码错误?

问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码
解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改密码点击确定就可以了。
 
问题二、已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233)
解决方法:打开‘程序’-‘所有程序’-‘Microsoft SQL Server 2005 ’-‘配置工具’-‘SQL Server 配置管理器’,在弹出的窗体中,找到‘SQL Server 2005 网络配置’,把‘MSSQLSERVER的协议’下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL Server 2005就可以了。
 
问题三、无法打开用户默认数据库。登录失败。用户‘sa’登录失败。(Microsoft SQL Server, 错误:4064)
解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,将默认数据库设置成master,点击确定就可以了。
这时还是不行,后来才知道一个最晕的问题,服务器名是“计算机/实例名”,FFC50E78A6DF423/server2005 这次全好了,呵呵。
 

二、升级到2005时出现18456问题的解决方法
 
在帮一个用户进行系统从Sql2000升级到Sql2005的过程中,遇到了几个问题,因前段时间同时忙于几个项目,没能及时把问题解决方法整理下来。这段时间有些轻松了,更新一下我的blog希望能帮助朋友们解决实践中的问题。

问题描述:
      在升级Sql2000的DTS包的时候,试着手工执行了几次,突然系统报18456错误,提示信息是“无法连接到×××服务器”,其他信息为“用户‘sa’登录失败。(Microsoft SQL Server,错误:18456)”。

问题原因:
      升级Sql2000的DTS包是这次数据库系统整体升级的一部分。除此之外,系统硬件进行了升级,新升级的系统服务器加入到了用户机构的域中,并更改了数据库sa的用户口令。
      原DTS的数据包是保存了原Sql2000数据库库系统的用户凭据,口令自然是原先的数据库口令。在试运行DTS包之前服务器管理员刚刚把新升级成功的数据库服务器加入域。
      用户机构的域是设置了“密码策略”。Sql Server 2005的sa用户默认是启用了“强制实施密码策略”。而一般默认的Windows帐户密码策略或者AD(域帐户)密码策略都是3-6次错误口令登陆失败后,系统暂时冻结该用户。冻结的时间要看系统设定的长短。
   该问题就出在DTS用错误的sa口令(旧的sa口令)多次试图访问系统,而sa的“强制实施密码策略”起了作用。

图解:
   sa帐户被锁定,原因是sa的帐户启用了“强制实施秘密策略”,或者“强制过期”。在登录用户sa的登录属性对话框中,能看到改选项是否选定状态。如下图所示:
     选中“强制实施秘密策略”后,sql server2005 会调用windows或者域的帐户管理策略。如果是windows的帐号管理策略,可以通过“控制面板”的“本地安全设置”中看到“帐户策略”情况,其中的“密码策略”可以设置用户秘密的失效时间、长短等,另外在“帐户锁定策略”可以设置“帐户锁定阈值”,即帐户用错误的口令尝试登录几次,系统即自动锁定该帐户。可以参考上图。
      如果sql server的帐号已经被锁定,在该帐户的登录属性里面能看到所示的sql server帐户被锁定。
    隔一定时间后,遇到的问题是因为,旧有的DTS包中设置的链接还是旧数据库的sa口令,当多次测试执行该DTS时,已经超过了尝试sa错误口令的次数,造成了所示的sql server帐户被锁定。
    这是即使用集成windows的帐户登录sql server,取消“登录已锁定”的勾选。再重新用sa的正确口令登录sql server时,也会出现18456的错误。如图所示。这是因为sa的口令需要重新设置。再次用集成windows的帐户登录sql server的帐户登录sql server进行sa的密码重新设置,即可解决问题。
       总结:
       第一,如果数据库安全性没有特殊的要求,去掉图所示的“强制实施秘密策略”勾选,能避免该类问题的发生。
       第二,从旧系统数据库升级上来的DTS,尽快修改旧链接的sa登录口令,保证系统帐户登录认证不会出问题,同时保证DTS能正确执行。

三、SQL Server 2005 连接本地端口1433开启远程连接
刚装的SQL server2005数据库,默认是关闭远程连接。安装完成后一般无法直接连接端口1433,此时连接一般会失败。 现在把在装完程序后,连接端口1433前,要做的几件事情和注意事项总结一下。
开启步骤:
1.关闭数据库引擎,关闭数据库引擎有三种方法:
开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并选中右击,点击停止, 即可关闭数据库引擎。
补充注意点:
有时候在启动数据库引擎的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.
2.配置服务器端和客户端的TCP/IP协议:
配置工具->SQL Server Configuration Manager->MSSQLSERVER的协议
看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是"
修改SQL Server的TCP/IP下端口设置,双击“SQL2005的协议”下“TCP/IP”,把“IP地址”下“IPALL”的端口都改为“1433”。
配置工具->SQL Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP
选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"
3.开启数据库引擎
4.连接端口1433
开始–>输入cmd –>回车–>telnet localhost 1433->回车
出现黑屏,表示本机连接端口1433成功 。
正确的顺序是:(1)关数据库引擎,
(2)配置服务器端和客户端的TCP/IP协议,
(3)启动数据库引擎,
(4)连接端口1433。
近日碰到一问题,程序无法查找到sqlserver的1433端口,sqlserver的网络实用工具里配置的没错,但是的确找不到,在命令提示符里输入:netstat -na ,一样看不到这个端口,重启sqlserver服务也不行,不知道咋回事,后来再一次重启,突然间可以……

程序使用JDBC方式访问SQL Server 2005

SqlServer端口:1433,1434
要访问SqlServer,可以使用JDBC方式访问。
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=maxwell"
这段时间要使用sqlserver,偶望文生义,以为在防火墙打开1433端口即可,谁知只打开这个端口怎么都不行,后来Google一下,才知道,还需要一个端口,留作笔记。
TCP-1433
UDP-1434
 
SQLSERVER端口是如何被ADO找到的?
 
问题:
把SQLSERVER的端口设置成1499,然后在程序中定义ADO的连接字符串:DRIVER={SQL Server};SERVER=127.0.0.1,1499,能够联接上去,如果是DRIVER={SQL Server};SERVER=127.0.0.1,1433,就联接不上去,问题是如果我定义成:DRIVER={SQL Server};SERVER=127.0.0.1 不加端口,也可以联接上去,ADO是怎么得到SQLSERVER的端口的呢?
回答:
客户端连接到服务器时,应用程序请求连接远端计算机,dbnetlib.dll 将打开到连接中所指定的计算机网络名上的 UDP 端口 1434 的连接。所有运行 SQL Server 2000 的计算机都监听此端口。当一个客户端 dbnetlib.dll 连接到该端口时,服务器将返回一个监听服务器上运行的所有实例的数据包。对于每个实例,该数据包报告该实例正在监听的服务器 Net-Library 和网络地址。应用程序计算机上的 dbnetlib.dll 收到该数据包后,选择在应用程序计算机和 SQL Server 实例上都启用的 Net-Library,然后连接为此数据包中的 Net-Library 列出的地址。
通过1434端口传输特定的UDP数据包,然后服务器开始回应,所有这些都是明文传输的,我们可以很容易探测一个IP地址的1434端口,获得该IP地址上运行的SQL Server的相关信息。这些信息包括:主机名称、实例名称、版本、管道名称以及使用的端口等。这个端口是微软自己使用,而且不象默认的1433端口那样可以改变,1434是不能改变的
另外:以后遇到此问题,可以使用冰刃工具查看操作系统各个端口的使用,还可以查看sqlserver的系统日志。

 
最后,建议每次远程连接SQL2005完成后,都从数据库的菜单项,右击选择“断开连接”,如图
 
出处:http://jimmyli.blog.51cto.com/ Jimmy Li Blog 。欢迎朋友一起交流,讨论。扣扣:柒⑥柒陆叁⑤叁伍



     本文转自jimmy_lixw 51CTO博客,原文链接:http://blog.51cto.com/jimmyli/915856,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux下使用Nginx端口转发出现502错误的一种解决办法
今天圈里的一个朋友在配置完nfinx80端口转发到5000后,发现一个问题 问题描述: 正确配置了Nginx80端口转5000端口,在CentOS上把.Net core WebAPI站点上传到centos  运行并在5000端口打开后,在putty中curl 5000端口可以正常返回,在电脑上访问该虚拟机地址却返回502错误。
2095 0
解决办法:本机远程连接服务器时出现身份验证错误,要求函数不受支持!
在用户名、IP、密码都对的情况下别的电脑能连接上,只有自己的电脑连接不上说函数不受支持 具体解决办法 windows专业版以上: 打开组策略编辑器 选择:计算机配置——管理模板——系统——凭据分配 双击“加密Orac...
2023 0
gdy
Ubuntu16.04 server下配置MySQL,并开启远程连接
背景   最近正在学nodejs,想到曾经有台云服务器,但是很久不用了,由于怕麻烦,一股脑的把云主机重装了个Ubuntu系统,于是配置MySQL成了配置服务中的一个环节(node用不用MySQL不管,主要是闲的重新配置一个-.-),但是配置的过程中,遇到不少问题,所以在解决一系列问题后留篇博备以后使用。
1092 0
如何在小程序中调用本地接口
背景: 随着微信小程序开始公测,我司也拿到了AppID,所以开始了微信小程序的趟坑之旅。 由于现在网上已经有很多的《微信小程序从精通到入门》的教程了,所以就不再重复那些,只是讲一下,在开发的过程中,如何使用本地(开发环境)的接口。
1395 0
验签失败自查方案-支付宝接口常见错误系列
说明:   验签只需要使用到支付宝公钥 错误原因:   1.支付宝公钥使用错误导致   2.验签方法使用错误   3.参数错误导致,例如乱码,带自定义参数,编码格式。 自查流程(按照推荐流程检查)   第一步(重点检查):支付宝公钥使用是否错误参考这个帖子自查:[url]https://openclub.
1771 0
创建、修改门店接口常见错误返回
1、Q:创建店铺场景下营业执照主体信息不一致        A:营业执照的名称和支付宝实名认证名称不一样,确保一致,需要上传授权涵。  2、Q:支付接口如果store_id和alipay_store_id都传了,支付宝会验证这两个参数的合法性吗?        A:均会进行检测两者是否匹配。
463 0
MSSQL SERVER 2008 R2 无法连接到数据库,用户sa登录失败,错误:18456
原因:勾选了强制实施密码策略,但是设置的密码很简单依然可以,比如:123456 这是为什么?原来,这个功能要用到NetValidatePasswordPolicy() API这个函数。 (该功能只有在安全要求较高的时候才用) 解决方法:在运行里输入 gpedit.msc 打开 “本地策略”编辑器依次 展开“计算机配置” “Windows设置”-“安全设置”-“帐户策略”-“密码策略",“密码必须符合复杂性要求”应该是禁用状态, 改为已启用,之后再创建SQL Server用户即可。
1519 0
21117
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载