当前位置: 代码迷 >> Sql Server >> 无法打开登录 'xxxx' 中请求的数据库。登录失败。用户 'sa' 登录失败。解决思路
  详细解决方案

无法打开登录 'xxxx' 中请求的数据库。登录失败。用户 'sa' 登录失败。解决思路

热度:243   发布时间:2016-04-27 13:25:52.0
无法打开登录 'xxxx' 中请求的数据库。登录失败。用户 'sa' 登录失败。
错误信息:
无法打开登录 'vote' 中请求的数据库。登录失败。
用户 'sa' 登录失败。

行 16: //链接数据库
行 17: SqlConnection con = DB.createConnection();
行 18: con.Open();
行 19: //查询投票标题
行 20: SqlCommand cmd = new SqlCommand("select voteTitle from voteMaster where voteId = 1");
  

注:其中DB.cteateConnection();
  public class DB
  {
  public static SqlConnection createConnection()
  {
  SqlConnection con = new SqlConnection("server=localhost;database=vote;Persist Security Info=True;User=sa;Password=liang");
  return con;

  }
  }
密码没有错!不明白为什么?求教!我用是sql2008、visual studio 2010!

------解决方案--------------------
server=localhost\\实例名 

你不是用的默认实例吧
------解决方案--------------------
常见的SQL Server连接失败错误以及解决方法

http://topic.csdn.net/u/20100424/18/2966ce4d-dfa4-4368-b247-0d337b23aaa9.html?42355

A--SQL Server 不存在或访问拒绝

错误有以下可能:
a.SQL Server名称或者IP地址拼写有误
b.服务器端网络配置错误
c.客户端网络配置错误

解决步骤:
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是服务器网络使用工具 2008是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服务;

第二个原因解决方法:SQL Server2005 
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


顺便提下登入的1069错误:

症状:
由于更改了你的计算机名字,再次启动时,就会发生“由于登入失败而无法启动服务”的情况。
解决方法:
1.改回你的计算机名字;
  相关解决方案