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<-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这一项修改为一个不带空格的文件夹路径,这里我使用了自定义的一个文件夹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<-InputDataSet‘,
 @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语言的奥妙之处了!

时间: 2024-10-10 00:06:57

Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法的相关文章

linux/centos安装nginx常见错误及解决办法

1. 安装完成Nginx后无法站外访问? 刚安装好nginx一个常见的问题是无法站外访问,本机wget.telnet都正常.而服务器之外,不管是局域网的其它主机还是互联网的主机都无法访问站点.如果用telnet的话,提示: 正在连接到192.168.0.xxx...不能打开到主机的连接, 在端口 80: 连接失败 如果用wget命令的话,提示: Connecting to 192.168.0.100:80... failed: No route to host. 如果是以上的故障现象,很可能是被

ubuntu系统下使用终端安装guake出现错误的解决办法

在网上查到的解决办法.使用以下命令安装guake时: sudo apt-get install guake 如果出现错误: E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 可在终端输入如下代码 sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock 然后再次输入: sudo apt-get in

python2 安装scrapy出现错误提示解决办法~

首先:set STATICBUILD=true && pip install lxml 安装环境: windows7操作系统,已经正确安装python,pip. 使用pip功能安装Scrapy模块,当输入命令后出现: ERROR: command "python setup.py egg_info" failed with error code 1 in ... 但是测试了pip安装其他模块是正常的. 按照:http://scrapy-chs.readthedocs.i

Wdcp在安装memcached出现错误的解决办法

因为在国内网络无法访问Google所以无法下载libevent-1.4.14b-stable.tar.gz和memcached-1.4.15.tar.gz 解决办法: 手动把 https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz 下载到本机,然后再上传到 服务器 /tmp目

PYTHON -MYSQLDB安装遇到的问题和解决办法

目前下载的mysqldb在window下没有exe安装包了,只有源码. 使用python setup.py install 命令安装, 报错如下: 异常信息如下: F:\devtools\MySQL-python-1.2.3>pythonsetup.py build Traceback (most recent call last): File "setup.py", line 15, in <module> metadata, options = get_confi

Oracle10g安装中遇到的错误及解决办法

Linux环境: LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarchDistributor ID: RedHatEnterpriseASDescription: Red Hat Enterprise Linux AS release 4 (Nahant Update 7)Release: 4Codename: NahantUpdate7 Oracle安装版本:10201_databas

Nodejs npm安装socket.io报错解决办法

安装socket.io时,报错,提示需要安装Microsoft visual studio 2005 或 Net framework 2.0 sdk,没有找到vcbuild.exe,解决办法是安装 .NET Framework 2.0 Software Development Kit (SDK) http://www.microsoft.com/en-us/download/details.aspx?id=15354 并将 C:\Program Files\Microsoft Visual St

Linux 使用yum install安装mysql登陆不上解决办法

CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/ CentOS Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 如果仅仅只yum 安装了mysql这个包,启动mysql时就会提示:ERROR 2002 (HY000): Can’t connect to local MySQL

LINUX下安装pcre出现WARNING: &#39;aclocal-1.15&#39; is missing on your system错误的解决办法

1.下载安装包 wget https://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz 2.解压 tar -xzvf automake-1.15.tar.gz 3.安装 $ cd automake-1.15 $ ./configure --prefix=安装目录 $ make $ sudo mkdir -p /opt $ sudo make install 4.导入环境变量 export PATH=/opt/aclocal-1.15/bin:$PAT