时间:2021-07-01 10:21:17 帮助过:15人阅读
本人也是折腾了好久最终才成功在Sqlserver 2016中执行了R语言。
首先如果你要启用Sqlserver的R语言功能,必须要启动Sqlserver的两个服务:
1.Sqlserver实例数据库引擎服务:
2.Sqlserver实例SQL Server Lanuchpad服务:
启动这两个服务之后,还要在SSMS中执行下面这段SQL脚本,才能在Sqlserver中开启执行外部脚本(R语言)的功能。注意执行完这段脚本后要重启数据库引擎服务和SQL Server Lanuchpad服务才会正式生效:
- <span style="color: #0000ff;">Exec sp_configure <span style="color: #ff0000;">‘<span style="color: #ff0000;">external scripts enabled<span style="color: #ff0000;">‘, <span style="color: #800000; font-weight: bold;">1<span style="color: #000000;">;
- <span style="color: #0000ff;">reconfigure;</span></span></span></span></span></span></span>
如果你在安装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语言命令:
- <span style="color: #0000ff;">exec sp_execute_external_script <span style="color: #008000;">@language <span style="color: #808080;">=N<span style="color: #ff0000;">‘<span style="color: #ff0000;">R<span style="color: #ff0000;">‘<span style="color: #000000;">,
- <span style="color: #008000;">@script<span style="color: #808080;">=N<span style="color: #ff0000;">‘<span style="color: #ff0000;">OutputDataSet<-InputDataSet<span style="color: #ff0000;">‘<span style="color: #000000;">,
- <span style="color: #008000;">@input_data_1 <span style="color: #808080;">=N<span style="color: #ff0000;">‘<span style="color: #ff0000;">select 1 as hello<span style="color: #ff0000;">‘
- <span style="color: #0000ff;">with result sets ((<span style="color: #ff0000;">[<span style="color: #ff0000;">hello<span style="color: #ff0000;">] <span style="color: #0000ff;">int <span style="color: #808080;">not <span style="color: #0000ff;">null<span style="color: #000000;">));
- <span style="color: #0000ff;">go </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
结果如下,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语言的奥妙之处了!
Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法
标签:还需 font 系统管理员 修改 环境安装 hello err enabled note