今天再给客户调试系统数据库的时候,我的Microsoft SQL Server 2005在我删除一个数据库后突然登录不上去了,出现"SQLServer无法打开用户默认数据库,登录失败,错误4064"提示,现在想为什么会出现这个问题呢?以前从来没有过,细细回忆这一现象的出现,原因是我的数据库中其中一个数据库在我给予SA用户名登陆权限,把这个数据库删除而出现的。
查找问题的过程:(注:用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,点击确定就可以了。