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語言的奧妙之處了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM