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 с повышенной безопасностью....

Другие вопросы по тегам