R с ошибкой SQL Server 2016 "[Microsoft][ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию"
Я пытаюсь подключить R с SQL Server 2016, когда я пытался RevoScaleR_SqlServer_GettingStarted.R
скрипт или мой собственный скрипт, я получил следующую ошибку:
[Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию. ODBC Ошибка в SQLDisconnect. Не удалось открыть источник данных. Ошибка в doTryCatch(return(expr), name, parentenv, handler): не удалось открыть источник данных.
Примечание: я могу выполнить R скрипт в SQL Management Studio. Я уже настроил драйвер Microsoft ODBC для SQL Server версии 13.00.1300 в источниках данных ODBC (64-разрядная версия).
2 ответа
Наткнулся на то же сообщение... похоже, это просто общее сообщение от R, что что-то не так с вашей строкой соединения.
По крайней мере, это была моя проблема... в примере кода было место, где нужно имя вашего экземпляра сервера. Удаление места исправило это для меня.
# https://microsoft.github.io/sql-ml-tutorials/R/customerclustering/step/2.html
#Connection string to connect to SQL Server. Don't forget to replace MyServer with the name of your SQL Server instance
connStr <- paste("Driver=SQL Server;Server=", " localhost", ";Database=" , "tpcxbb_1gb" , ";Trusted_Connection=true;" , sep="" ); # Broken... due to space in the paste.
connStr <- paste("Driver=SQL Server;Server=", "localhost", ";Database=" , "tpcxbb_1gb" , ";Trusted_Connection=true;" , sep="" ); #Fixed.
Я только что закончил устранение того же сообщения об ошибке.
"Имя источника данных не найдено и драйвер по умолчанию не указан" означает, что dsn и драйвер должны быть включены в сведения о соединении.
Следующая статья от rstudio полезна, и вот что сработало для меня:https://support.rstudio.com/hc/en-us/articles/214510788-Setting-up-R-to-connect-to-SQL-Server-
library(DBI)
con2 <- dbConnect(odbc::odbc(),
.connection_string = "Driver={Simba SQL Server ODBC Driver};",
server= "<server>",
dsn = "<data source name>",
database = "<database>",
uid = rstudioapi::askForPassword(prompt = 'Please enter username: '),
pwd = rstudioapi::askForPassword("Database password"),
timeout = 10,
trusted_connection = TRUE)
Помимо правильного подключения, необходимо правильно настроить ODBC Manager и выбрать / установить драйвер, который работает с SQL Server.
Вероятно, вам следует создать txt-файл в вашем файле и сохранить в нем строку подключения, после чего вы должны использовать readLines("ваша строка подключения.txt"), чтобы прочитать строку подключения и использовать ее в своем коде, работающем для меня... К вашему сведению, вы должны отключить блокировку R на вашем брандмауэре Windows с повышенной безопасностью....