文档库 最新最全的文档下载
当前位置:文档库 › sqlserver数据库连接失败错误及解决方法

sqlserver数据库连接失败错误及解决方法

sqlserver数据库连接失败错误及解决方法
sqlserver数据库连接失败错误及解决方法

SQL Server数据库连接失败错误及解决方法

在使用SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言,有以下两种连接SQL Server 的方式,一是利用SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用ODBC 或者OLE DB 等连接SQL Server。下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。

一、客户端工具连接失败

在使用SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,最常见的错误有如下一些:

1、SQL Server 不存在或访问被拒绝

ConnectionOpen (Connect())

2、用户'sa'登录失败。原因:未与信任SQL Server 连接相关联。

3、超时已过期。

下面我们依次介绍如何来解决这三个最常见的连接错误。

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。一般说来,有以下几种可能性:

1、SQL Server名称或IP地址拼写有误;

2、服务器端网络配置有误;

3、客户端网络配置有误。

要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。

首先,检查网络物理连接:

ping <服务器IP地址>

或者

ping <服务器名称>

如果ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

如果ping <服务器IP地址> 成功而ping <服务器名称> 失败,则说明名字解析有问题,这时候要检查DNS 服务是否正常。有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:

1、使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).

2、添加一条IP地址与服务器名称的对应记录,如:

myserver

也可以在SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。

其次,使用telnet 命令检查SQL Server服务器工作状态:

telnet <服务器IP地址> 1433

如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明SQL Server 服务器工作正常,并且正在监听1433端口的TCP/IP 连接;如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动SQL Server 服务,也可能服务器端没启用TCP/IP 协议,或者服务器端没有在SQL Server 默认的端口1433上监听。

接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道,是否启用了TCP/IP 协议等等。我们可以利用SQL Server 自带的服务器网络使用工具来进行检查。

点击:程序-> Microsoft SQL Server -> 服务器网络使用工具,打开该工具后看到的画面如下图所示:

从这里我们可以看到服务器启用了哪些协议。一般而言,我们启用命名管道以及TCP/IP 协议。

点中TCP/IP 协议,选择"属性",我们可以来检查SQK Server 服务默认端口的设置,如下图所示:

一般而言,我们使用SQL Server 默认的1433端口。如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。

检查完了服务器端的网络配置,接下来我们要到客户端检查客户端的网络配置。我们同样可以利用SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具。

点击:程序-> Microsoft SQL Server -> 客户端网络使用工具,打开该工具后看到的画面如下图所示:

从这里我们可以看到客户端启用了哪些协议。一般而言,我们同样需要启用命名管道以及TCP/IP 协议。

点击TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,如下图所示。

该端口必须与服务器一致。

单击"别名"选项卡,还可以为服务器配置别名。服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同。如下图中,我们可以使用myserver来代替真正的服务器名称sql2kcn-02,并且使用网络库Named Pipes。别名的设置与使用HOSTS文件有相似之处。

通过以上几个方面的检查,错误 1 发生的原因基本上可以被排除。下面我们再详细描述如何来解决错误2。

当用户尝试在查询分析器里面使用sa来连接SQL Server,或者在企业管理器里面使用sa来新建一个SQL Server注册时,经常会遇到如图2 所示的错误信息。该错误产生的原因是由于SQL Server使用了"仅Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如sa )进行连接。解决方法如下所示:

1、在服务器端使用企业管理器,并且选择"使用Windows 身份验证"连接上SQL Server;

2、展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡;

3、在"身份验证"下,选择"SQL Server和Windows "。

4、重新启动SQL Server服务。

在以上解决方法中,如果在第 1 步中使用"使用Windows 身份验证"连接SQL Server 失败,那么我们将遇到一个两难的境地:首先,服务器只允许了Windows 的身份验证;其次,即使使用了Windows 身份验证仍然无法连接上服务器。这种情形被形象地称之为"自己把自己锁在了门外",因为无论用何种方式,

用户均无法使用进行连接。实际上,我们可以通过修改一个注册表键值来将身份验证方式改为SQL Server 和Windows 混合验证,步骤如下所示:

1、点击"开始"-"运行",输入regedit,回车进入注册表编辑器;

2、依次展开注册表项,浏览到以下注册表键:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]

3、在屏幕右方找到名称"LoginMode",双击编辑双字节值;

4、将原值从1改为2,点击"确定";

5、关闭注册表编辑器;

6、重新启动SQL Server服务。

此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server。这是因为在SQL Server 中有两个缺省的登录帐户:BUILTIN\Administrators 以及<机器名>\Administrator 被删除。要恢复这两个帐户,可以使用以下的方法:

1、打开企业管理器,展开服务器组,然后展开服务器;

2、展开"安全性",右击"登录",然后单击"新建登录";

3、在"名称"框中,输入BUILTIN\Administrators;

4、在"服务器角色"选项卡中,选择"System Administrators" ;

5、点击"确定"退出;

6、使用同样方法添加<机器名>\Administrator 登录。

以下注册表键

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode

的值决定了SQL Server将采取何种身份验证模式。该值为1,表示使用Windows 身份验证模式;该值为2,表示使用混合模式(Windows 身份验证和SQL Server 身份验证)。

看完如何解决前两个错误的方法之后,让我们来看一下如图 3 所示的第三个错误。

如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。有些情况下,由于局域网的网络问题,也会导致这样的错误。

要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4 秒,而查询分析器是15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因)。具体步骤为:

1、在企业管理器中,选择菜单上的"工具",再选择"选项";

2、在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;

3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如20。

查询分析器中也可以在同样位置进行设置。

二、应用程序连接失败

以上的三种错误信息都是发生在SQL Server 自带的客户端工具中,在应用程序中我们也会遇到类似的错误信息,例如:

Microsoft OLE DB Provider for SQL Server (0x)

[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found.

Microsoft OLE DB Provider for SQL Server (0x)

用户'sa' 登录失败。原因: 未与信任SQL Server 连接相关联。

Microsoft OLE DB Provider for ODBC Drivers 错误''.

[Microsoft][ODBC SQL Server Driver]超时已过期.

首先,让我们来详细看以下的示意图来了解一下使用ODBC 和使用OLE DB 连接SQL Server 有什么不同之处。

从上图中,我们可以看出在实际使用中,应用程序创建和使用各种ADO 对象,ADO 对象框架调用享用的OLE DB 提供者。为了访问SQL Server 数据库,OLE DB 提供了两种不同的方法:用于SQL Server 的OLE DB 提供者以及用于ODBC 的OLE DB 提供者。这两种不同的方法对应于两种不同的连接字符串,标准的连接字符串写法如下所示:

1、使用用于SQL Server 的OLE DB 提供者:

使用SQL Server 身份验证:

"Provider=sqloledb;" & _

"Data Source=myServerName;" & _

"Initial Catalog=myDatabaseName;" & _

"User Id=myUsername;" & _

"Password=myPassword"

使用Windows 身份验证(信任连接):

"Provider=sqloledb;" & _

"Data Source=myServerName;" & _

"Initial Catalog=myDatabaseName;" & _

"Integrated Security=SSPI"

2、使用用于ODBC 的OLE DB 提供者(不使用ODBC 数据源):

使用SQL Server 身份验证:

"Driver={SQL Server};" & _

"Server=MyServerName;" & _

"Database=myDatabaseName;" & _

"Uid=myUsername;" & _

"Pwd=myPassword"

使用Windows 身份验证(信任连接):

"Driver={SQL Server};" & _

"Server=MyServerName;" & _

"Database=myDatabaseName;" & _

"Trusted_Connection=yes"

3、使用用于ODBC 的OLE DB 提供者(使用ODBC 数据源):

"DSN=mySystemDSN;" & _

"Uid=myUsername;" & _

"Pwd=myPassword"

如果遇到连接失败的情况,我们只要按照一中所示的方法,结合程序中的连接字符串进行检查,基本都能得到解决。另外,还有以下几个要注意的地方:

1、配置ODBC 数据源时,点击"客户端"配置选项可以让我们指定连接使用的网络库、端口号等属性,如下图所示:

2、如果遇到连接超时的错误,我们可以在程序中修改Connection 对象的超时设置,再打开该连接。例如:

Set Conn = ("")

DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase" Conn. Properties("Connect Timeout") = 15 '以秒为单位

DSNtest

%>

3、如果遇到查询超时的错误,我们可以在程序中修改Recordset 对象的超时设置,再打开结果集。例如:

Dim cn As New

Dim rs As

. . .

cmd1 =

Set rs = New

("Command Time Out") = 300

'同样以秒为单位,如果设置为0 表示无限制

cmd1, cn

. . .

三、小结

本文针对大部分用户在使用SQL Server 过程中常见的连接失败的错误,重点讨论了在使用SQL Server 客户端工具以及用户开发的应用程序两种情况下,如何诊断并解决连接失败的错误。看过本文以后,相信每一个读者都会对SQL Server 的连接工作原理、身份验证方式以及应用程序开发等有一个较为全面而深入的连接。本文中所有的测试或者示例均在Windows 2000 Advanced Server + SQL Server 2000 企业版上通过。

如何打开1433端口的解决方法

这篇文章主要针对Win2003系统安装SQL Sever2000后1433端口未开放,如何打开1433端口的解决方法。

用了几年的Windows2003和SQL Server2000了,不过这个问题倒是头次遇到。最近调试一个JSP+SQL2000WEB程序遇到个现象,在Win2003简体中文服

务器版上安装SQL Server2000,默认安装,一切正常,但是在安装完成后Tomcat运行正常,JSP程序却无法连接SQL2000数据库,查看端口,1433端口居然未开放,当然

更不用说远程连接了。

一般分析的都是这样:

1、sql server服务没有启动;

检查服务启动,重新启动服务故障依然。

2、修改了端口号;

打开网络实用工具,检查启用的协议中有TCP/IP协议,查看端口,是1433没错。

3、客户端实用工具作了改动;

打开客户端实用工具,检查协议端口正常,重新创建一个别名,依然不行。

4、安装的问题;

怀疑安装步骤有问题。遂卸载重装,一切默认,故障依然。

5、安装版本的问题;

查看安装光盘,是久经考验的安装盘,应该不会出问题。

6、系统的问题;

也看不出有什么其它的问题,难道是系统的问题不过重装系统可太过麻烦,还是先想想其它的办法,看能不能

找到问题所在。

检查系统日志,这个应该是一个比较好的习惯。仔细翻了一遍重新安装后的日志,赫然发现如下内容:

您运行的Microsoft SQL Server 2000 版本或Microsoft SQL Server 2000 Desktop Engine (也称

为MSDE) 和

Microsoft Windows Server 2003 家族使用时存在已知的安全弱点。为了减少计算机被某些病毒的攻

击,Microsoft SQL Server 2000,MSDE 或两者的TCP/IP 和UDP 网络端口被禁用。要启用这些端口,您必须

从或安装一个修补程序,或Microsoft SQL Server 2000 或MSDE 的最新服务包。

&displaylang=en

有关更多信息,请参阅在的帮助和支持

终于找到问题了,原来是Windows的一个小小的安全考虑。那么为什么以前就没遇到过呢,原来搞惯安全的人,安

装好sql以后,在使用前一定会先修补漏洞,所以一直未注意过这个问题。看来什么样的习惯都会有一些弊端!

既然找到问题就简单了,立刻到微软网站:&FamilyID=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5

下载SP4的“数据库组件(下载文件:)”

安装SQL Server SP4后,浏览器地址栏测试一切正常。

附:

远程连接sql server 2000服务器的解决方案

解决方案步骤:

一看ping 服务器IP能否ping通。

这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得

确保远程sql server 2000服务器的IP拼写正确。

二在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。

如telnet 1433

通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问

题。通常的提示是“……无法打开连接,连接失败”。

如果这一步有问题,应该检查以下选项。

1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。

2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上

打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果

没有,则启用它。

3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属

性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。

事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配

置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器

来看到这台服务器,

起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相

应的改变。

4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试

时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。

5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在

服务器的dos或命令行下面输入netstat -a -n 或者是netstat -an,在结果列表里看是否有类似tcp listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询

分析器,输入select @@version 执行后可以看到版本号,版本号在以下的都需要打补丁。

如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭

喜你,你马上可以开始在企业管理器或查询分析器连接了。

三检查客户端设置

程序->Microsoft SQL Server-> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议

启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。

四在企业管理器里或查询分析器连接测试

企业管理器->右键SQlserver组->新建sqlserver注册->下一步->写入远程IP->下一步-> 选Sqlserver登陆->下一

步->写入登陆名与密码(sa,password)->下一步->下一步->完成

查询分析器->文件->连接->写入远程IP->写入登录名和密码(sa,password)->确定

通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server 的超时设置是4秒,而查

询分析器是15秒。

修改默认连接超时的方法:

企业管理器->工具->选项->在弹出的”SQL Server企业管理器属性”窗口中,点击”高级”选项卡->连接设置->在登

录超时(秒)后面的框里输入一个较大的数字

查询分析器->工具->选项->连接->在登录超时(秒)后面的框里输入一个较大的数字

通常就可以连通了,如果提示错误,则进入下一步。

五错误产生的原因通常是由于SQL Server使用了”仅Windows”的身份验证方式,因此用户无法使用SQL Server的

登录帐户(如sa )进行连接。解决方法如下所示:

1 在服务器端使用企业管理器,并且选择”使用Windows 身份验证”连接上SQL Server。

2 展开”SQL Server组”,鼠标右键点击SQL Server服务器的名称,选择”属性”,再选择”安全性”选项卡。

3 在”身份验证”下,选择”SQL Server和Windows “。

4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start

mssqlserver启动服务,也是一种快捷的方法)。

注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的协议有这个)

,默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全不同的协议)。

各种数据库的连接连接Connection方法

package com.jdbc.myConnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionFactory { //获取Oracle连接 public static Connection getOracleConnection() { Connection con = null; try { Class.forName("oracle.jdbc.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; con = DriverManager.getConnection(url, "scott", "tiger"); } catch (Exception e) { e.printStackTrace(); } return con; } //获取SQLServer的test数据库连接 public static Connection getSQLServerConnection() { return getMySQLConnection("test"); } //获取SQLServer 连接 public static Connection getSQLServerConnection(String databaseName) { Connection con = null; try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String url = "jdbc:microsoft:sqlServer://localhost:1433;databaseName=" + databaseName; con = DriverManager.getConnection(url, "sa", "sa"); } catch (Exception e) { e.printStackTrace(); } return con; } //获取MySQL连接 public static Connection getMySQLConnection() { return getMySQLConnection("test");

彻底解决SQL SERVER 2005无法远程连接的问题

彻底解决SQL SERVER 2005无法远程连接的问题 2010-05-07 09:15:21| 分类:服务器配置 | 标签:无 |字号大中小订阅 连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 (Microsoft SQL Server,错误: 10060) 步骤1. 打开SQL Server Configuration Manager,查看里面的SQL Native Client 配置,判断里面的别名是否配置。 注意:如果远程连接异地数据库,可以使用此种方法进行别名配置,连接异地数据库。 步骤2. 彻底解决SQL SERVER 2005无法远程连接的问题 一、为 SQL 启用远程连接 1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 3. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。 注意:请在接收到以下消息时单击“确定”: 直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。 4. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。 二、启用 SQL Server Browser 服务 1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 3. 在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。

ASP NET 6种常用数据库的连接方法

1.C#连接连接Access 程序代码: using System.Data; using System.Data.OleDb; .. string strConnection="Provider=Microsoft.Jet.OleDb.4.0;"; strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb"; OleDbConnection objConnection=new OleDbConnection(strConnection); .. objConnection.Open(); objConnection.Close(); 解释: 连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的! strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源. "Provider=Microsoft.Jet.OleDb.4.0;"是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,https://www.wendangku.net/doc/411257680.html,就是靠这个和Access的数据库连接的. "Data Source=C:\BegASPNET\Northwind.mdb"是指明数据源的位置,他的标准形式是"Data

Source=MyDrive:MyPath\MyFile.MDB". PS: 1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符. 2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接: strConnection+="Data Source="; strConnection+=MapPath("Northwind.mdb"); 这样就可以省得你写一大堆东西了! 3.要注意连接字符串中的参数之间要用分号来分隔. "OleDbConnection objConnection=new OleDbConnection(strConnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道. "objConnection.Open();"这用来打开连接.至此,与Access数据库的连接完成. 2.C#连接SQL Server 程序代码: using System.Data; using System.Data.SqlClient; .. string strConnection="user id=sa;password=;"; strConnection+="initial catalog=Northwind;Server=YourSQLServer;";

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连

在建立与服务器的连接时出错。在连接到SQL Server 2005 时,在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。(provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server 的连接) 刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到SQL Server 2005 时,在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。(provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。 1. 数据库引擎没有启动。 有两种启动方式: (1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动; (2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动; 使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置 ->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了. 2. 是否已经允许远程连接。 这个部分可以简单的分为4个方面,分别是在SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。 在SQLServer 实例上启用远程连接

sqlserver数据库连接错误解决方案

日志总结 项目搭建 一、项目搭建: 1、先把所需的j a r全部找到,导入l i b中。 2、把数据库的驱动包(所需包根据所选数据库而定)导入。 3、设置配置文件 4、建立测试类 二、项目搭建,测试时的错误: j a v a.l a n g.I l l e g a l S t a t e E x c e p t i o n: F a i l e d t o l o a d A p p l i c a t i o n C o n t e x t C a u s e d b y: o r g.s p r i n g f r a m e w o r k.b e a n s.f a c t o r y.B e a n C r e a t i o n E x c e p t i o n:E r r o r c r e a t i n g b e a n w i t h n a m e'u s e r D a o':I n j e c t i o n o f r e s o u r c e d e p e n d e n c i e s f a i l e d;n e s t e d e x c e p t i o n i s o r g.s p r i n g f r a m e w o r k.b e a n s.f a c t o r y.B e a n C r e a t i o n E x c e p t i o n:E r r o r c r e a t i n g b e a n w i t h n a m e's e s s i o n F a c t o r y'd e f i n e d i n c l a s s p a t h r e s o u r c e [a p p l i c a t i o n C o n t e x t-c o m m o n.x m l]: I n v o c a t i o n o f i n i t m e t h o d f a i l e d;n e s t e d e x c e p t i o n i s j a v a.l a n g.A b s t r a c t M e t h o d E r r o r: c o m.m i c r o s o f t.j d b c.b a s e.B a s e D a t a b a s e M e t a D a t a.s u p p o r t s G e t G e n e r a t e d K e y s()Z C a u s e d b y: o r g.s p r i n g f r a m e w o r k.b e a n s.f a c t o r y.B e a n C r e a t i o n E x c e p t i o n:E r r o r c r e a t i n g b e a n w i t h n a m e's e s s i o n F a c t o r y'd e f i n e d i n c l a s s p a t h r e s o u r c e [a p p l i c a t i o n C o n t e x t-c o m m o n.x m l]: I n v o c a t i o n o f i n i t m e t h o d f a i l e d;n e s t e d e x c e p t i o n i s j a v a.l a n g.A b s t r a c t M e t h o d E r r o r: c o m.m i c r o s o f t.j d b c.b a s e.B a s e D a t a b a s e M e t a D a t a.s u p p o r t s G e t G e n e r a t e d K e y s()Z C a u s e d b y: j a v a.l a n g.A b s t r a c t M e t h o d E r r o r: c o m.m i c r o s o f t.j d b c.b a s e.B a s e D a t a b a s e M e t a D a t a.s u p p o r t s G e t G e n e r a t e d K e y s()Z 解决方案: Caused by: https://www.wendangku.net/doc/411257680.html,ng.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z

Java连接各种数据库写法

随笔- 6 文章- 0 评论- 1 Java连接各种数据库写法 # 示例配置参考,涵盖几乎所有的主流数据库 ############# Oracle数据库######################## # 数据库驱动名 driver=oracle.jdbc.driver.OracleDriver # 数据库URL(包括端口) dburl=jdbc:oracle:thin:@127.0.0.1:1521:zvfdb # 数据库用户名 user=root # 用户密码

password=zvfims ############# DB2数据库######################## # 数据库驱动名 driver=com.ibm.db2.jcc.DB2Driver # 数据库URL(包括端口) dburl=jdbc:db2://127.0.0.1:50000/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# MySQL数据库######################## # 数据库驱动名

driver=com.mysql.jdbc.Driver # 数据库URL(包括端口) dburl=jdbc:mysql://127.0.0.1:3306/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# PostgreSQL数据库数据库######################## # 数据库驱动名 driver=org.postgresql.Driver # 数据库URL(包括端口) dburl=jdbcostgresql://127.0.0.1/zvfdb

SQLServe数据源连接失败问题总结

SQL Server ODBC数据源连接失败问题总结 本文针对SQL Server 不存在或是访问被拒绝、[Microsoft][ODBC Sql Server Driver]无效的连接、SQLSERVER错误:18452三种常见的连接错误问题,提出了解决的方法,并且亲身实践。 在提出问题之前,首先要检查防火墙和杀毒软件是否关闭,接着,在建立连接的时候,要保证SQL Server 服务器是打开的。以上都做到后,请参考下文的出错情况以及解决方法。 一、错误1:SQL Server 不存在或是访问被拒绝 SQLState:01000 SQL Server 错误: 64 [Microsoft][ODBC SQL Server Driver][DBNETLIB] ConnectionOpen (Connect()) 连接失败 SQLState:08001 SQL Server 错误: 17 [Microsoft][ODBC SQL Server Driver][DBNETLIB] SQL Server 不存在或是访问被拒绝 检查1433端口是否打开 没有找到1433端口 说明1433端口没有打开。 打开1433端口的方法: 1.针对我安装的系统SP3,安装的SQL2005默认TCP/IP的状态是禁止的,因此:

选择SQL Server Configuration Manager,然后分别打开SQL Server 2005 Services 和SQL Server 2005 Client Configuration,并把TCP/IP和Nameed Pipes的状态设置为Enabled; 2.如果不行,就需要更新系统 更新后,一定要重启电脑。 .重新检查1433端口,如下图所示,发现1433已经打开。

SQLServer 2008以上误操作数据库恢复方法

SQLServer 2008以上误操作数据库恢复方法——日志尾部备份 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题。遇到这种情况,一般都是没有做备份,不然也不会来发问了。首先要冷静,否则会有更大的灾难。直到你放弃。 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了。但是唯一遗憾的是,不支持2008及更高版本,这时除了其他第三方工具,那么最常用的就是本文提到的方法——日志尾部备份。本文实验环境2008R2,对于2008及其以上版本可以使用这个方法,其实2005也可以,2000很少用,没试过,只是2008之前可以使用Log Exploer,所以就没必要用这种方法。 下面图文并茂讲解操作方法,至于原理,不属于本文范围,而且我相信真遇到误操作的时候,估计没人会看原理了。 步骤: (1)、检查数据库的恢复模式,如图:

或者使用脚本检查: 1.SELECT recovery_model,recovery_model_desc 2.FROM sys.databases 3.WHERE name='AdventureWorks' 结果如下: 确保数据库的恢复模式最起码不能为【简单】。至于如何修改成完整模式,我觉得这些应该没必要多说了。 切记,对于任何重要环境,不仅仅是客户正式环境(俗称生产环境),都强烈建议使用【完整恢复模式】,虽然对于另外两种(大容量日志(BULK_LOGGED)、简单(SIMPLE))来说,完整恢复模式产生的日志会大,但是在出现问题的时候,就会觉得这些都不算什么了。并且我也想不到任何理由对于正式环境不使用完整恢复模式。只要管理得当,完整恢复模式的日志也不会太变态。 (2)、这里其实隐含另外一步,曾经做过最少一次的完整备份。因为所有类型的备份都基于完整备份,如果没有最少一次完整备份,其他类型的备份都是多余的,所以在这里强调一下,在创建完一个新数据库之后,强烈建议甚至强制做一次完整备份。 1.SELECT database_name,recovery_model,name 2.FROM msdb.dbo.backupset 使用上面的语句粗略可以看到有那些数据库做过备份,由于测试,所以做了几次备份,可以看到我这个时间点已经做了备份了。 (3)、确保别人不再连接数据库,然后做一次日志尾部备份: 首先先创建一点数据: [sql]view plaincopyprint?

java平时最常用的7种数据库连接方式

今天总结了java平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动

sqlserver数据库连接失败错误及解决方法

SQL Server数据库连接失败错误及解决方法 在使用SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言,有以下两种连接SQL Server 的方式,一是利用SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用ODBC 或者OLE DB 等连接SQL Server。下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。 一、客户端工具连接失败 在使用SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,最常见的错误有如下一些: 1、SQL Server 不存在或访问被拒绝 ConnectionOpen (Connect()) 2、用户'sa'登录失败。原因:未与信任SQL Server 连接相关联。

3、超时已过期。 下面我们依次介绍如何来解决这三个最常见的连接错误。 第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。一般说来,有以下几种可能性: 1、SQL Server名称或IP地址拼写有误; 2、服务器端网络配置有误; 3、客户端网络配置有误。 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。 首先,检查网络物理连接: ping <服务器IP地址> 或者 ping <服务器名称> 如果ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

通过ADO连接各种数据库的字符串

通过ADO连接各种数据库的字符串 在网络编程过程中,ADO(Activex Data Object)编程往往是不可少的工作,特别是开发电子商务网站。既然讲到ADO数据对象,那么就顺便简单地介绍一下ADO数据对象及其功能。ADO数据对象共有七种独立的对象,他们分别是连接对象(Connection)、记录集对象(RecordSet)、域对象(Field)、命令对象(Command)、参数对象(Parameter)、属性对象(Property)和错误对象(Error)。功能请参见附录1。 ADO数据对象用来连接数据库的方式有两种,分别是ODBC和OLE DB方式,下面就分别介绍用这两种方式连接数据库的例子。 第一种:ODBC DSN-Less Connections ODBC Driver for Access ODBC Driver for dBASE ODBC Driver for Excel ODBC Driver for MySQL ODBC Driver for Oracle ODBC Driver for Paradox ODBC Driver for SQL Server ODBC Driver for Sybase ODBC Driver for Sybase SQL Anywhere ODBC Driver for Text ODBC Driver for Teradata ODBC Driver for Visual FoxPro 第二种:OLE DB Data Provider Connections OLE DB Provider for Active Directory Service OLE DB Provider for DB2 OLD DB Provider for Internet Publishing OLE DB Provider for Index Server OLE DB Provider for Microsoft Jet OLE DB Provider for ODBC Databases OLE DB Provider for Oracle (From Microsoft) OLE DB Provider for Oracle (From Oracle)

SQLServer连接不通解决方案

系统连接sqlserver数据库问题解决方案 一、首先检查 1、网络不通,不能ping通服务器。检查HUB或路由器是否正常工作。检查其它机子是否网络通。检查网线的可能性问题。本地连接是否启用? 2、检查防火墙是否把起点软件拦截了。XP系统自带有防火墙可能阻止了软件访问网络。 3、数据库服务是否启动。 4、数据库有无更改密码。 5、数据库中是否存在当前连接的用户数据库。 二、根据软件错误提示检查 以上问题检查无误的话,首先注意连接不上时的提示,起点软件在连接不上数据库时会有一个连接提示错误信息。 1"SQL Server 不存在或访问被拒绝" 这个问题是最常见的,通常是XP2的操作系统+MS SQL SERVER 2000的配置情况下出现这种问题。这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。 一般说来,有以下几种可能性: 1,SQL Server名称或IP地址拼写有误 2,服务器端网络配置有误 3,客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因: 首先,检查网络物理连接 ping <服务器IP地址/服务器名称> 如果ping <服务器IP地址> 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等。

还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。防火墙软件可能会屏蔽对ping,telnet 等的响应 因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。 如果ping <服务器IP地址> 成功而,ping <服务器名称> 失败 则说明名字解析有问题,这时候要检查DNS 服务是否正常。 有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析, 具体的方法是: 1。使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc)。 添加一条IP地址与服务器名称的对应记录,如: 172。168。10。24 myserver 2。或在SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。 其次,使用telnet 命令检查SQL Server服务器工作状态 telnet <服务器IP地址> 1433 如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明SQL Server 服务器工作正常,并且正在监听1433端口的TCP/IP 连接 如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动SQL Server 服务, 也可能服务器端没启用TCP/IP 协议,或者服务器端没有在SQL Server 默认的端口1433上监听。 接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道。是否启用了TCP/IP 协议等等,可以利用SQL Server 自带的服务器网络使用工具来进行检查。 点击:程序Microsoft SQL Server 服务器网络使用工具,打开该工具后,在"常规"中可以看到服务器启用了哪些协议。 一般而言,我们启用命名管道以及TCP/IP 协议。 点中TCP/IP 协议,选择"属性",我们可以来检查SQK Server 服务默认端口的设置

7种方法连接数据库

连接数据库的方法小结 1.ODBC API ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API 进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。 2.MFC ODBC 由于直接使用ODBC API编写应用程序要编制大量代码,开发者往往需要花费很多的精力在非核心代码的维护上,而Visual C++提供了MFC ODBC类,封装了ODBC API,这使得利用MFC ODBC来创建ODBC应用程序非常简便。 3.DAO(Data Access Object) DAO提供了一种通过程序代码创建和操纵数据库的机制,多个DAO构成一个体系结构,在这个体系结构中,各个DAO对象协同工作。MFC DAO是Microsoft提供的用于访问Microsoft jet数据库文件的强有力的数据库开发工具,它通过封装DAO,向程序员提供了DAO操作数据库的手段。 4.OLE DB OLE DB(Object Linking and Embedding, Database, 又称为OLE DB或OLE-DB),一个基于COM的数据存储对象,能提供对所有类型的数据的操作,甚至能在离线的情况下存取数据(比方说,你使用的是你的便携机,你可以毫不费力地看到最后一次数据同步时的数据映像). OLEDB位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的应用程序. 你的ADO调用先被送到OLEDB,然后再交由ODBC 处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升.

软件连接不上SQLSERVER数据库的排查方法

关于软件连接不上sqlserver数据库的排查方法更新版 1、数据库安装不完整 安装完成后在configuration Manager 中查看是否有安装服务 如下图,如若没有SQL Server 200X服务图标则说明服务没有安装成功,需要卸载重装 2、数据库服务没有启动 在开始栏输入service.msc查看服务,然后找到SQL Server (

如果服务是启动类型是手动,且未启动,将启动类型改为自动,然后点击启动,让服务启动 3、TCP/IP设置错误 点开MSSQLERVER协议,看TCP/IP是否启用 若已启用点击TCP/IP,进入TCP/IP设置,看TCP端口和IP是否启用,若IP1-4都未启用,改

为启用,并应用,然后重启数据库服务 4、数据库用户名权限低或者browser服务未启动 当安装软件时配置数据库成功,安装完软件,按提示重启电脑后,测试连接数据库失败,进入数据库中查看,数据库中没有写入表 (1)在configuration中启动browser 服务或者到外围应用配置器中启动browser 服务

(2)查看配置数据库所用用户名权限

可用windows身份验证登录数据库,给用户名增加权限,勾选所有权限,如果增加权限不成功,则新增一个用户名再添加权限,再在软件安装目录下zkeco\units\adms\attsite.ini文件中更改原数据库配置的用户名及密码,然后再测试连接数据库 5、attsite.ini配置文件出错 zkeco\units\adms\attsite.ini 文件为空,或者显示乱码也会造成连接数据库失败,解决方法是在安装包同个文件夹下找到attsite.ini,替换进去,然后将端口号及数据库配置更改为自己所需要的,保存,重启服务 6、外部因素导致连接失败 有时在电脑防火墙、安全软件的阻止下,软件连接数据库也会失败,需将防火墙、安全软件关闭再测试连接。 7、配置数据库信息填写错误

SQLServer 附加数据库后出现只读或失败的解决方法

解决此问题的几个关键点如下: 1、该现象只会出现在NTFS文件系统中。 2、由NTFS文件系统的访问权限导致。 一般手工操作的解决方案如下: 1、控制面板—>文件夹选项—>查看关闭“使用简单文件共享(推荐)” 2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。

经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。 下面重点讲这两步,用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作 1、C#关闭简单文件共享的代码实现 在百度、Google搜索此问题解决方法时,很多的操作方法并不正确,经过自己实际操作测试,正确方法如下: 注册表文件: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "forceguest"=dword:00000000 批处理: reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f 如果选中此项,则将上述 0x00000000 改为 0x00000001。 通过修改注册表的方式实现代码如下: Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine; Microsoft.Win32.RegistryKey software =

SQLServer类型与Java类型转换问题解决

ResultSet 接口提供用于从当前行获取列值的获取方法(getBoolean、getLong 等)。可以使用列的索引编号或列的名称获取值。一般情况下,使用列索引较为高效。列从 1 开始编号。为了获得最大的可移植性,应该按从左到右的顺序读取每行中的结果集列,每列只能读取一次。 对于获取方法,JDBC 驱动程序尝试将底层数据转换为在获取方法中指定的 Java 类型,并返回适当的 Java 值。JDBC 规范有一个表,显示允许的从 SQL 类型到ResultSet 获取方法所使用的 Java 类型的映射关系。 用查询从包含 sqlvariant 数据类型列的表中检索数据,则会发生异常。 Getter 方法转换

基于 SQL Server 2005 的数据类型,以下图表包含 SQLServerResultSet 类的get方法的 JDBC 驱动程序转换图,以及 SQLServerCallableStatement 类的get方法支持的转换。 JDBC 驱动程序的 getter 方法支持三种基本的转换类别: ?Non-Lossy (x):在 getter 类型等于或小于基础服务器类型的情况下执行转换。例如,对基础服务器的十进制数列调用getBigDecimal时, 无需进行转换。 ?Converted (y):从数字服务器类型到 Java 语言类型的转换,此时的转换为常规转换,并遵循 Java 语言转换规则。对于这些转换,总是 直接截取有效位数(从不四舍五入),而溢出则按目标类型取模处理, 以较小者为准。例如,对包含“1.9999”的基础十进制数列调用

【IT专家】Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法2017/06/28 1 相信很多朋友都会慕名Sqlserver 2016的R语言功能,将自己的数据库升级到Sqlserver 2016,但是当你安装完Sqlserver 2016的R语言组件之后,你会发现并不能直接使用,比如当你在SSMS中执行下面这段测试R语言命令的时候,Sqlserver 2016会各种报错。。。 ?exec sp_execute_external_script @language =N’R’, @script=N’OutputDataSet -InputDataSet’, @input_data_1 =N’select 1 as hello’ with result sets (([hello] int not null)); go ?本人也是折腾了好久最终才成功在Sqlserver 2016中执行了R语言。 ?首先如果你要启用Sqlserver的R语言功能,必须要启动Sqlserver的两个服务:?1.Sqlserver实例数据库引擎服务: ?2.Sqlserver实例SQL Server Lanuchpad服务: ? ?启动这两个服务之后,还要在SSMS中执行下面这段SQL脚本,才能在Sqlserver 中开启执行外部脚本(R语言)的功能。注意执行完这段脚本后要重启数据库引擎服务和SQL Server Lanuchpad服务才会正式生效: ?Exec sp_configure ‘external scripts enabled’, 1;reconfigure; ?如果你在安装Sqlserver 2016的时候,安装路径中如果出现了空格,那么恭喜你。。。你还需要修改一个系统配置文件,否者Sqlserver 2016 的R语言运行时会报错。。。 ?比如我安装Sqlserver 2016的时候安装路径为D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER ?那么找到文件D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\rlauncher.config ?使用操作系统管理员权限启动记事本(notepad),打开rlauncher.config,找到WORKING_DIRECTORY这一项修改为一个不带空格的文件夹路径,这里我使用了

相关文档
相关文档 最新文档