Я пытаюсь подключиться к базе данных SQL Server 2016 в RStudio. Я использую RStudio на своем ноутбуке. Я мог бы удаленно подключиться к серверу и установить там RStudio, если бы это было абсолютно необходимо, но локальная работа имеет огромные преимущества, поэтому я действительно предпочел бы это, если бы это было возможно. Соединение с сервером происходит через VPN (FortiClient), который у меня работает на ноутбуке.
На этом сервере есть два экземпляра SQL Server. Одним из них является выпуск SQL Server 2012, который является экземпляром по умолчанию и, следовательно, не имеет имени — раньше он был единственным экземпляром на этом сервере. Вторая — версия 2016 года. Этот экземпляр был настроен совсем недавно, чтобы использовать возможности интеграции R, новые для SQL Server 2016. Поскольку у сервера уже был экземпляр по умолчанию, этот экземпляр нужно было назвать, и поэтому он называется DEVR
.
Когда я получаю доступ к экземплярам в SSMS и нажимаю «Свойства», имя экземпляра по умолчанию — DWH-ACC
, а экземпляр 2016 года — DWH-ACC\DEVR
.
Это код, который я запускаю в RStudio для проверки подключения:
server <- "[IP-ADDRESS]\\DWH-ACC\\DEVR"
databaseName <- "Database"
user <- "user"
pwd <- "password"
sqlShareDir <- "C:\\Dir"
sqlWait <- TRUE
sqlConsoleOutput <- FALSE
sampleDataQuery <- "SELECT TOP 10 FROM [dbo].[Table]"
cc <- RxInSqlServer(server = server, databaseName = databaseName, user = user, password = pwd, shareDir = sqlShareDir, wait = sqlWait, consoleOutput = sqlConsoleOutput)
rxSetComputeContext(cc)
inDataSource <- RxSqlServerData(sqlQuery = sampleDataQuery, server=server, databaseName=databaseName, user=user, password=pwd, stringsAsFactors=TRUE, rowsPerRead=500)
rxGetVarInfo(data = inDataSource)
Я пробовал несколько вариантов спецификации сервера, среди которых [IP-ADDRESS]\\DEVR
и [IP-ADDRESS]/DEVR
, оба тоже не работают. Это ошибка, которую я получаю, когда запускаю код:
[Microsoft][ODBC SQL Server Driver][DBNETLIB]The SQL-Server does not exist or permission has been denied.
Could not open data source.
ODBC Error in SQLDisconnect
(Сообщение, кстати, переведено с голландского - это может быть не точный текст ошибки в английской версии программы)
Когда я пытаюсь просто указать IP-адрес в качестве строки подключения к серверу, я получаю другую ошибку, которая, по-видимому, указывает на то, что он может найти экземпляр (2012, то есть неправильный), но не может обработать запрос.
[Microsoft][ODBC-stuurprogrammabeheer] Fout in functievolgorde
Я не уверен, как перевести это, но, похоже, это связано с ODBC-драйверами и говорит «ошибка в порядке функций». В любом случае, эта ошибка не связана, и мне не нужно ее решать или объяснять, она просто показывает, что R, похоже, может подключаться к экземпляру по умолчанию, но не к более новому, именованному.