Как связать MS SQL-сервер с R на Ubuntu 16.04? - PullRequest
0 голосов
/ 25 января 2019

Я не могу подключиться к R с MS SQL, используя RODBC, а также RJDBC

С RODBC

library(RODBC)
dbhandle <- odbcDriverConnect(paste("driver={SQL Server};server=", sname, ";database=", 
                                      dbname, ";uid=", user,";pwd=",password, sep = ""))

res <- sqlFetch(dbhandle, client.table_name) 

Ошибка, которую я получаю:

Warning messages:
1: In odbcDriverConnect(paste("driver=SQL Server;server=", sname, ";database=",  :
  [RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found
2: In odbcDriverConnect(paste("driver=SQL Server;server=", sname, ";database=",  :
  ODBC connection failed 

Также я пытался с RJDBC

library(rJava)
library(RJDBC)

drv <- JDBC(driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver",
                  classPath="/home/****/sqljdbc_4.2/enu/jre8/sqljdbc42.jar")
conn <- dbConnect(drv, paste0("jdbc:sqlserver://",client.hostname),
                        user=client.username , password=client.password, dbname = client.dbName)

Ошибка

Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],  : 
  com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:253fd8d2-8e60-40fb-96b0-220745818166".

1 Ответ

0 голосов
/ 25 января 2019

Я получил ту же ошибку, когда я поставил ниже код для подключения к MSSQLSERVER

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=SQL Server;Server=192.168.76.60; Database=kaggle;Uid=sa; Pwd=1234")

Это выдает мне

[unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found

почему эта ошибка выдается? Ответ: если мы не сможем указать правильное имя версии ODBC в значении драйвера.

Откуда мы сможем получить имя версии драйвера ODBC

внутри папки "/ etc", и вы получитенайдите файл «odbcinst.ini», откройте его и проверьте имя версии

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1
UsageCount=1

, чтобы я получил отсюда имя драйвера ODBC, это будет «Драйвер ODBC 17 для SQL Server» Затем я изменяю строку подключения

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 17 for SQL Server;Server=192.168.76.60; Database=kaggle;Uid=sa; Pwd=1234")

И отлично работает

...