SQL Server 2005 链接本地端口1433开启远程链接/登录18456错误的解决方法
1、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都是开发状态。
晕,会不会是密码错误?
问题1、忘记了登陆Microsoft SQL Server 2005 的sa的登陆密码
解决方法:先用windows身份验证的方式登陆进去,而后在‘安全性’-‘登陆’-右键单击‘sa’-‘属性’,修改密码点击肯定就能够了。
问题2、已成功与服务器创建链接,可是在登陆过程当中发生错取。(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就能够了。
问题3、没法打开用户默认数据库。登陆失败。用户‘sa’登陆失败。(Microsoft SQL Server, 错误:4064)
解决方法:先用windows身份验证的方式登陆进去,而后在‘安全性’-‘登陆’-右键单击‘sa’-‘属性’,将默认数据库设置成master,点击肯定就能够了。
这时仍是不行,后来才知道一个最晕的问题,服务器名是“计算机/实例名”,FFC50E78A6DF423/server2005 此次全好了,呵呵。
2、升级到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能正确执行。
3、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完成后,都从数据库的菜单项,右击选择“断开链接”,如图