sqlserver安装显示句柄无效_Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法...

相信很多朋友都会慕名Sqlserver 2016的R语言功能,将自己的数据库升级到Sqlserver 2016,但是当你安装完Sqlserver 2016的R语言组件之后,你会发现并不能直接使用,比如当你在SSMS中执行下面这段测试R语言命令的时候,Sqlserver 2016会各种报错。。。

exec sp_execute_external_script @language =N'R',@script=N'OutputDataSet

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这一项修改为一个不带空格的文件夹路径,这里我使用了自定义的一个文件夹D:\RWorkspace

将D:\RWorkspace赋予windows用户everyone的完全控制权限(看到有文章说其实是要给这个文件夹赋予SQL Server Lanuchpad服务的执行账户的完全控制权限,但是由于我没有在系统中找到SQL Server Lanuchpad服务的执行账户,所以这里就赋予了用户everyone的完全控制权限):

然后以管理员身份启动命令行工具CMD,定位到文件夹D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library\RevoScaleR\rxLibs\x64

执行CMD命令:

registerRext.exe /uninstall

结果如下:

再执行CMD命令:

registerRext.exe /install

结果如下:

再次在SSMS中执行上面的测试R语言命令:

exec sp_execute_external_script @language =N'R',

@script=N'OutputDataSet

@input_data_1 =N'select 1 as hello'

with result sets (([hello] int not null));

go

结果如下,R语言模块成功运行!

但是由于执行了registerRext.exe /uninstall和registerRext.exe /install,我发现这两个命令其实最终会将rlauncher.config文件中WORKING_DIRECTORY的路径更改为D:\SQL-mssqlserver-ExtensibilityData,如下图所示:

所以前面我们修改rlauncher.config中配置文件和给文件夹D:\RWorkspace赋予everyone完全控制权限的步骤可能是多余的,但是最终目的反正就是不能让rlauncher.config文件中WORKING_DIRECTORY的路径包含空格,否者Sqlserver 2016的R语言运行时会报错,这一点必须要注意。

好了R语言服务终于可以成功使用了,接下来就可以探究Sqlserver R语言的奥妙之处了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle用一个字段往上递归,深入sql oracle递归查询

获取数据库所有表名,表的所有列名 select name from sysobjects where xtypeuselect name from syscolumns where id(select max(id) from sysobjects where xtypeu and name表名)查询数据sql语句里的递归查询 sqlServer2005和Oracle 两个版本以前使用Oracle&#x…

如何在Spring Boot App中集成H2数据库

你好朋友, 在本教程中,我们将尝试探索如何在Spring Boot应用程序中与H2数据库集成。 在进行检查之前,让我们了解有关H2数据库的一些基础知识,如下所述,然后我们将讨论H2数据库与Spring Boot的集成。 什么是H2数据库…

python在路径里添加变量_想学Python?那就先从头开始吧!

作为人工智能和大数据时代最具竞争力的 Python 语言,越来越多的出现在各大编程热搜排行榜上。首先你要了解什么是python了解Python语言Python是一种解释型, 面向对象, 动态数据类型的高级程序设计语言.Python由Guido van Rossum(荷兰) 于1989…

php生成16位不重复随机码,PHP n个不重复的随机数生成代码

复制代码代码如下://range是将1到100列成一个数组$numbersrange(1,100);//shuffle将数组顺序随即打乱shuffle($numbers);//array_slice取该数组中的某一段$no6;$resultarray_slice($numbers,0,$no);for($i0;$iecho$result[$i]."";}print_r($result);?>复制代码代…

ant 走马灯面板指示显示不出来_触摸屏报警信息显示设置方法

人机界面(HMI)是自动化设备中非常常用的器件,用于替代操作面板上的实体按钮或者显示指示。人机界面的适用极大的减小了设备操作面板的尺寸,提升了设备的整体美观度。随着自动化设备的自动化程度的提高,也对设备的报警信息提出了更高的要求。如…

oracle bbed 使用,Oracle BBED使用 四步快速启动Oracle BBED

Oracle BBED使用,四步快速启动Oracle BBED,环境:Oracle 10g RHEL 5.8,介绍:BBED全称为数据块浏览和编辑。用于对Oracle blo环境:Oracle 10g RHEL 5.8介绍:BBED全称为数据块浏览和编辑。用于对Or…

python打包加版本信息_使用pyi-set_version为PyInstaller打包出来的程序附加版本信息...

本文将讲述如何使用 pyi-grab_version获取版本信息的模板文件,以及使用 pyi-set_version为打包好的程序附加版本信息。当然了,在开始前,需要你已经安装好了 PyInstaller 这个工具。如果已经安装,你可以在 Python 的安装目录&#…

linux读取.data文件,[20121227]v$datafile访问是从数据文件获取信息吗.txt

[20121227]v$datafile访问是从数据文件获取信息吗.txt记得以前开始学习oracle的时候,被问及访问v$datafile从哪里获取信息,当时想都没想,从数据文件.虽然当时对方并没有告诉答案,显然认为水平不再同一档次上.直到有一次看一篇blog:SELECT controlfile "SCN location"…

java 常见错误_Java常见错误的十大列表(前100名!)

java 常见错误前10名名单非常受欢迎,有趣且内容丰富。 但是有很多! 如何选择合适的? 这是一个元前10名列表,可帮助您找到前10名的前10名列表。 在更令人讨厌的笔记上: SELECT TOP 10 mistake FROM source1 UNION ALL …

dll侧加载_win7系统开机提示xxxdll模块已加载但找不到入口点的解决方法

很多小伙伴都遇到过win7系统开机提示xxxdll模块已加载但找不到入口点的困惑吧,一些朋友看过网上零散的win7系统开机提示xxxdll模块已加载但找不到入口点的处理方法,并没有完完全全明白win7系统开机提示xxxdll模块已加载但找不到入口点是如何解决的&#…

linux md5加密文件,Linux下对字符串进行MD5加密

深入学习golang(1)—数组与切片数据(array)与切片(slice) 数组声明: ArrayType "[" ArrayLength "]" ElementType . 例如: va ...使用apt-fast 来加速你的Ubuntu 的apt使用apt-fast 来加速你的Ubuntu 的apt sudo add-apt-repository …

JDK 12:实际中的切换语句/表达式

我的上一篇文章“ 玩JDK 12的Switch表达式 ”讨论了如何使用JDK 12 Early Access Builds尝试JEP 325 switch 表达式和语句,并提供了一个简单的示例。 这篇文章使用相同的JDK 12 Early Access Build 10来演示switch表达式和增强的switch语句的不同功能。 我在博客文…

broker可以禁用吗 time_Win8.1系统Runtime Broker是什么进程?可以禁用吗?

我们知道电脑一开启就有很多进程了,其中有一个Runtime Broker是大家比较疑惑的,很多人会问Win8.1系统Runtime Broker是什么进程?可以禁用吗?带着这两个问题,小编现在就来为大家讲解一下。一、RuntimeBroker进程介绍Run…

2. linux的日志文件在哪个目录,位于/var/log目录下的20个Linux日志文件

如果你多数时间都在使用Linux系统,那么你有必要知道系统的日志文件位于哪里,以及每个日志文件是关于哪些内容的。在系统正常的时候学习理解各种日志文件的内容,有助于在遇到紧急情况时通过日志文件定位问题所在。/etc/rsyslog.conf文件决定了…

linux内核4.4和4.5,[图]Linux Kernel 4.5系列第4个维护版本发布

Greg Kroah-Hartman表示:“我今天宣布了Linux 4.5.4内核,所有Linux 4.5内核系列用户必须尽快升级。已经升级的4.5.y git tree能够在git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.5.y中获取,也能通过访问h…

python字符串下标截取_python 用下标截取字符串的实例

python 用下标截取字符串的实例运行环境: win7 64位python 2.7pycharmpython 源码如下# -*- coding: utf-8 -*-str 0123456789print(str[0:3])print(str[0:-1])print(str[-1])print(str[2:5])print(str[6:-1])print(str[6:])运行效果如下:0120123456789…

linux正则表达式脚本实例,PowerShell中正则表达式使用例子

本文介绍PowerShell中正则表达式的使用,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便。正则表达式本身是怎么回事,本文不做讨论,反正PowerShell还是用的微软的那一套正则表达式规则,学VB、…

天津python招聘信息网_【天津-滨海新区Python招聘_最新热搜天津-滨海新区Python人才招聘信息】-前程无忧...

学历要求:硕士|工作经验:3-4年|公司性质:上市公司|公司规模:150-500人专业:计算机、自动化、软件工程、图形图像学或相关专业 语言:c c c# java 数据库 算法 工作经验:3年以上 岗位专业能力&…

前端---初始常用的 html 标签

1. 常用的 html 标签 <!-- 1、成对出现的标签&#xff1a;--><h1>h1标题</h1> <div>这是一个div标签</div> <p>这个一个段落标签</p><!-- 2、单个出现的标签&#xff1a; --> <br> <img src"images/pic.jpg&qu…

linux开机自动启动开机日志,设置linux开机自动运行脚本

实现目标&#xff1a;在Linux启动时&#xff0c;自动运行位于普通用户test1根目录下的脚本程序test.py&#xff0c;该程序会在每次执行时自动向本地日志文件追加一条记录&#xff0c;源码如下&#xff1a;from datetime import datetimenow datetime.now()f open(test.log, a…