none
当我们远程连接SQL Server,连接报错或者登录失败的时候该如何解决? RRS feed

  • 问题

  • 当我们连接不上SQL Server 或者登录失败的时候,比如遇到连接(Connection)的错误信息或者18456的错误信息时,我们应该如何解决?
    2011年5月24日 9:21
    版主

答案

  • 对于连接(Connection)的问题,我们一般从以下几个方面着手去逐一的排除:
     

    1.  PING命令检查网络是否正常。如果PING不通的话,则说明客户端与服务器端的网络工作不正常或者TCP/IP没有正确的配置,如何解决该问题,请参考如何解决基本的TCP/IP问题

    2.  检查SQL Server服务是否启动。若未启动,请使用SQL Server Configuration Manager去启动。

    3.  确保相应的协议如TCP/IP或者Named Pipe协议已经开启。

    4.  检查实例名称是否是正确的。
     

    ·         SQL Server Browser已经启动的情况下:

    对于默认实例,我们只需要填写计算机名称而不需要指定实例名(
    MSSQLSERVER;

    对于命名实例,连接字符串中的服务器名应该是:computer_name\instance_name.

     

    ·         如果SQL Server没有启动,我们也可以将端口号添加到连接字符串中,格式为:computer_name\instance_name, port_no.
     

    5.       检查防火墙是否阻塞SQL Server监听的端口号。如果使用SQL Server Browser,也确保防火墙是否阻塞其监听的端口号,为UDP端口 1434。我们可以通过以下步骤查看SQL Server监听的端口号:

    开始
    -> 所有程序-> Microsoft SQL Server 2008 -> 配置工具 ->SQL Server Configuration Manager ->SQL Server Network Configuration -> Protocols for <instance name> -> TCP/IP -> IP Address -> IPAll.
     

    关于如何配置防火墙,请参考如何为数据库引擎访问配置Windows防火墙
     

    6.  如果以上配置都是正确的,还是无法连接成功的话,我们就得检查具体的错误信息,有两种方式:
     

    ·         查看 SQL Server 错误日志

    ·         如何查看 SQL Server 错误日志 (SQL Server Management Studio)

     

    对于登录失败,错误号为18456的问题,不同的State代表不同的错误信息,然后客户端显示的错误信息永远是消息 18456,级别 14,状态 1,服务器 <computer_name>,第 1 行。所以要解决这类的问题,我们必须找到服务器端记录的错误状态,然后进行排错。详细信息,请参考下面这两篇文章:
    故障排除:用户 'X' 登录失败

    Troubleshooting Login failed error 18456

     

    2011年5月24日 9:21
    版主

全部回复

  • 对于连接(Connection)的问题,我们一般从以下几个方面着手去逐一的排除:
     

    1.  PING命令检查网络是否正常。如果PING不通的话,则说明客户端与服务器端的网络工作不正常或者TCP/IP没有正确的配置,如何解决该问题,请参考如何解决基本的TCP/IP问题

    2.  检查SQL Server服务是否启动。若未启动,请使用SQL Server Configuration Manager去启动。

    3.  确保相应的协议如TCP/IP或者Named Pipe协议已经开启。

    4.  检查实例名称是否是正确的。
     

    ·         SQL Server Browser已经启动的情况下:

    对于默认实例,我们只需要填写计算机名称而不需要指定实例名(
    MSSQLSERVER;

    对于命名实例,连接字符串中的服务器名应该是:computer_name\instance_name.

     

    ·         如果SQL Server没有启动,我们也可以将端口号添加到连接字符串中,格式为:computer_name\instance_name, port_no.
     

    5.       检查防火墙是否阻塞SQL Server监听的端口号。如果使用SQL Server Browser,也确保防火墙是否阻塞其监听的端口号,为UDP端口 1434。我们可以通过以下步骤查看SQL Server监听的端口号:

    开始
    -> 所有程序-> Microsoft SQL Server 2008 -> 配置工具 ->SQL Server Configuration Manager ->SQL Server Network Configuration -> Protocols for <instance name> -> TCP/IP -> IP Address -> IPAll.
     

    关于如何配置防火墙,请参考如何为数据库引擎访问配置Windows防火墙
     

    6.  如果以上配置都是正确的,还是无法连接成功的话,我们就得检查具体的错误信息,有两种方式:
     

    ·         查看 SQL Server 错误日志

    ·         如何查看 SQL Server 错误日志 (SQL Server Management Studio)

     

    对于登录失败,错误号为18456的问题,不同的State代表不同的错误信息,然后客户端显示的错误信息永远是消息 18456,级别 14,状态 1,服务器 <computer_name>,第 1 行。所以要解决这类的问题,我们必须找到服务器端记录的错误状态,然后进行排错。详细信息,请参考下面这两篇文章:
    故障排除:用户 'X' 登录失败

    Troubleshooting Login failed error 18456

     

    2011年5月24日 9:21
    版主
  • 这是一些提示信息,希望对你有用

    006-02-27 00:02:00.34 Logon     Error: 18456, Severity: 14, State: 8.

    2006-02-27 00:02:00.34 Logon     Login failed for user '<user name>'. [CLIENT: <ip address>]

    n
    The key to the message is the 'State' which the server will accurately set to reflect the source of the problem.  In the example above, State 8 indicates that the authentication failed because the user provided an incorrect password.  The common error states and their descriptions are provided in the following table:

    ERROR STATE

    ERROR DESCRIPTION

    2 and 5

    Invalid userid

    6

    Attempt to use a Windows login name with SQL Authentication

    7

    Login disabled and password mismatch

    8

    Password mismatch

    9

    Invalid password

    11 and 12

    Valid login but server access failure

    13

    SQL Server service paused

    18

    Change password required

    2011年5月25日 15:18