SQL Server 出现Error: 1326错误(管理器无法连接远程数据库)问题解决方案

SQL Server 出现Error: 1326错误

我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,错误描述信息摘录如下:

An error has occurred while establishing a connection to the server.
(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 1326)

  上面这段英文的翻译后大概是说:不能在数据库之间建立一个连接,原因是命名管道提供者出现错误。其实这是一个比较典型的数据库服务器设置问题,在局域网或广域网中都可能会遇到,我们只需要对数据库服务器进行一些配置便可以解决这个问题,来看看具体的步骤。

第一步:确保服务器端数据库服务已经启动

  开始->所有程序->Microsoft SQL Server 2008->Configutation Tools,打开SQL Server Configuration Manager,点击SQL Server Services,查看数据库服务是否已经启动,如果服务未开启,手动启动它。当然,你还可以通过点击Windows中的开始->控制面板->管理者工具->服务,来查看相应的数据库服务是否启动。或者如果服务器和你的机器在同一网络,你还可以通过命令“sqlcmd -L”(注意L要大写)去查看该网络内所有可用的SQL Server服务器。

第二步:在SQL Server Configuration中启用TCP/IP

  多个SQL Server服务器之间通过网络相互通信是需要TCP/IP支持的,为使SQL Server服务器能被远程连接必须确保TCP/IP已经启用。按照前面介绍的步骤打开SQL Server Configuration Manager,然后打开SQL Server Network Configuration,选择你要设置的数据库,然后点击TCP/IP,右键启用。如果有必要,你还可以启用Named Pipes。记住,所有的修改都必须在重启SQL Server服务之后才能生效!

第三步:在Windows防火墙中打开SQL Server的端口号

  很多时候我们在对数据库服务器本身做了很多次设置后仍然无法成功建立远程连接,这时就要考虑是否是防火墙在作怪。默认情况下,许多端口号和服务都会被防火墙所禁止而不能远程访问或执行,SQL Server默认的端口号也不例外。我们应该重新设置Windows防火墙给SQL Server添加例外。除非人为修改,默认情况下SQL Server的端口号是1433,将该端口号添加到Windows防火墙中。如果SQL Server存在命名实例,那么也应该将SQL Server browser添加到Windows防火墙中。(有关SQL Server的命名实例将在后面介绍)

  打开Windows控制面板,选择Windows防火墙->Change Settings->Exceptions->Add Port

点击Add port...在弹出的对话框中填入:
  Name: SQL
  Port Number: 1433
  Protocol: Select TCP

 第四步:在SQL Server管理器中启用远程连接

  这一步通常会被数据库管理员忽略,如果未启用数据库远程连接,数据库实例只允许在本地进行连接而不能被远程连接,启用远程连接同样非常重要。默认设置中远程连接是被禁止的。如下图,打开SQL Server Management Studio,右键点击数据库实例然后选择属性菜单。

  在打开的窗口中,左侧选择Connections,然后勾选"Allow remote connections to this server"。

第五步:启用SQL Server Browser服务

  如果SQL Server在安装时不是用的默认实例名而是自定义的实例名,并且没有配置特定的TCP/IP端口号,那么按照我们前面的描述SQL Server仍然不能支持远程连接。但如果你启用的SQL Server Browser服务,便可以通过动态TCP/IP端口号进行远程SQL Server连接。启用SQL Server Browser服务非常简单,与启用SQL Server类似,在SQL Server Configuration Manager中右键点击SQL Server Browser,然后选择启用。启用该服务将会影响到服务器上所有已安装的SQL Server实例。

第六步:在防火墙中为sqlbrowser.exe应用程序创建例外

  我们在前面已经提到了,自定义命名的SQL Server实例要支持远程连接需要启用sqlbrowser服务,Windows防火墙可能会阻止该服务执行。因此,我们必须在Windows防火墙中给sqlbrowser服务添加例外。

  首先找到服务器上安装sqlbrowser.exe程序的路径,如C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe。如果不确定SQL Server安装在什么地方,你可以在Windows搜索一下文件名。与我们在前面介绍的在防火墙中添加SQL TCP/IP端口号的方法类似,给sqlbrowser.exe应用程序添加防火墙例外。
最后:重新创建数据库别名

  创建SQL Server别名并在应用程序中使用它很常见。使用数据库别名可以确保一旦数据库的位置发生了变化,如更换了新的服务器,IP地址发生了变化等,应用程序中的数据库连接字符串不用修改。否则你更换了数据库的位置,你还要通知所有使用该数据库的应用程序修改源代码或配置文件中的连接字符串,这恐怕是不可能的。所以,使用数据库别名来配置连接字符串是一个非常明智的选择。另外,你还可以使用相同的别名来指向不同的数据库实例,当修改别名参数时,可以马上实现数据库之间的切换。创建数据库别名非常简单,在SQL Server Configuration Manager中选择Aliases进行创建。

自己补充:sqlservr.exe是服务PID是1760,占用端口号是1433,检查该端口是否占用,可以用telnet  localhost 1433去查看,还可以通过netstat IP | find "1433'去具体谁占用了。总结:1.一看用户名、密码;2二看是否设置允许远程连接;3三看防火墙是否把1433保护了(不知道的话可以直接关闭防火墙试试)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • SQLSERVER 本地查询更新操作远程数据库的代码

    复制代码 代码如下: --PK select * from sys.key_constraints where object_id = OBJECT_ID('TB') --FK select * from sys.foreign_keys where parent_object_id =OBJECT_ID('TB') --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlin

  • SQL server 2005将远程数据库导入到本地的方法

    远程数据库与本地数据库数据之间的导入导出,从来都是一个值得人关注的问题. 下面,就给你详细介绍SQL2005将远程数据库导入到本地的方法. 首先,将SQL2005打开.方法是:"开始"→"程序"→"Microsoft SQL Server 2005"→"SQL Server Management Studio",这样,就可以把本地的SQL2005打开了. 打开了本地的SQL2005之后,现在,如何把远程数据库中的数据库,导入到

  • SQL Server实时同步更新远程数据库遇到的问题小结

    工作中遇到这样的情况,需要在更新表TableA(位于服务器ServerA 172.16.8.100中的库DatabaseA)同时更新TableB(位于服务器ServerB 172.16.8.101中的库DatabaseB). TableA与TableB结构相同,但数据数量不一定相同,应为有可能TableC也在更新TableB.由于数据更新不频繁,为简单起见想到使用了触发器Tirgger.记录一下遇到的一些问题: 1. 访问异地数据库 在ServerA 中创建指向ServerB的链接服务器,并做好

  • SQL Server 出现Error: 1326错误(管理器无法连接远程数据库)问题解决方案

    SQL Server 出现Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,错误描述信息摘录如下: An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a connection to

  • Sql Server "用户登录失败,错误编18456"的解决过程

    目录 1.说明 2.其他错误信息 排错分析 总结 Sql Server 解决“用户登录失败,错误编号18456” 1.说明 因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似以下内容的消息将返回到客户端:“用户‘<user_name>’登录失败. (Microsoft SQL Server,错误:18456)”. 返回到客户端的其他信息有: “用户‘<user_name>’登录失败. (.Net SqlClient 数据访问接口)” -------------------

  • JavaScript基于activexobject连接远程数据库SQL Server 2014的方法

    本文实例讲述了JavaScript基于activexobject连接远程数据库SQL Server 2014的方法.分享给大家供大家参考,具体如下: 最近翻开一本10年前买的JavaScript的书,这本书买回来只看了前半部分,后面的一直没看,也一直没有从事这方的工作. 看到有一节写着js连access接数据库,于是照着书上的代码,写了一段在chrome浏览器中运行,发现完全没反应. 查了一下才发现,这个activexobject只有微软的IE支持,其他的浏览器都不支持,我想可能是由于连接数据库

  • SQL Server复制需要有实际的服务器名称才能连接到服务器

    服务器上安装的WIN2008 R2,然后没有在意机器名,安装了SQL2008 R2数据库之后,配置AD域的时候修改了机器名. 然后,开始配置数据库镜像同步的时候,先试了下数据库复制发布,结果提示"SQL Server 复制需要有实际的服务器名称才能连接到服务器.不支持通过服务器别名.IP 地址或任何其他备用名称进行连接.请指定实际的服务器名称...",如下图所示. 网上查了下,有同学总结说是机器名不对,这才想起来之前确实修改过机器名,只是本次链接数据库中的实例用的是IP或别名形式的地址

  • SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询

    概述 CROSS APPLY 与 OUTER APPLY 可以做到:左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配的情况. 有两张表:Student(学生表)和 Score(成绩表),数据如下: 一.CROSS APPLY ROSS APPLY 的意思是“交叉应用”,在查询时首先查询左表,,然后右表的每一条记录跟左表的当前记录进行匹配.匹配成功则将左表与右表的记录合并为一条记录输出:匹配失败则抛弃左表与右表的记录.(与 INNER JOIN 类似) 查询每个学生最近两次的

  • SQL Server 2000“设备激活错误”的解决方法

    数据库中对数据的操作是一大重要技能,其中,数据的恢复和还原也是常做的事.不知你是否在数据库恢复时遇到诸如"设备激活错误,请使用with move选项来标志该文件的有效位置"的错误信息提示?不知你在还遇到这样的情况:还原数据库时, 发现在企业管理器中,操作:所有任务-->还原数据库-->选择"从设备"还原,找到备份文档路径,强制还原.报错:设备激活错误,请使用with move选项来标志该文件的有效位置.本文将为你讲解出现这个错误应如何解决. 解决方法:右

  • SQL Server 监控磁盘IO错误,msdb.dbo.suspect_pages

    suspect_pages 表位于 msdb 数据库中,是在 SQL Server 2005 中引入的.用于维护有关可疑页的信息的 suspect_pages 数据库管理员负责管理表(主要通过删除旧的行实现).suspect_pages 表有大小限制,如果此表已满,则不会记录新的错误.若要防止此表填满,数据库管理员或系统管理员必须通过删除行来手动清除此表中的旧条目.因此,我们建议您定期删除或存档 event_type 为已还原或已修复的行或具有旧 last_update 值的行. 若要监视对 s

  • SQL Server 2005 RTM 安装错误 :The SQL Server System Configuration Checker cannot be executed due to

    昨天在安装SQL 2005 RTM的时候碰到了这样一个错误: Microsoft SQL Server 2005 Setup ------------------------------ The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine XXXX Error:2147749896 (0x80041008). For help, click: 

  • SQL Server 2005 Management Studio Express企业管理器将英文变成简体中文版的实现方法

    看到这个文章肯定一点就是你把sql没有装到C盘里,呵呵不用怕看下面 在安装的时候要注意:在安装SQL Server 2005 Express时候需要将公共组件安装在C盘然后再安装SQL Server Management Studio Express中文版本,若将SQL Server 2005 Express时候需要将公共组件安装在其他逻辑盘上再安装SQL Server Management Studio Express时候中文版本时SQL Server Management Studio Ex

  • SQL Server 复制需要有实际的服务器名称才能连接到服务器

    今天在做sql Server 2005的实验的时候碰到的问题,问题描述很清楚,怀疑是我以前给计算机修改了名称而导致的.可以用select @@servername和select serverproperty ('servername')对照一下,两个的结果是否一样,不一样就会出现问题,以下给出解决的SQL脚本 复制代码 代码如下: if serverproperty('servername') <> @@servername begin declare @server sysname set

随机推荐