我正在尝试将R连接到SQL server 2016,当我尝试RevoScaleR_SqlServer_GettingStarted.R
脚本或我自己的脚本时,我收到以下错误:
[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序 SQLDisconnect中的ODBC错误 无法打开数据源。 doTryCatch出错(return(expr),name,parentenv,handler): 无法打开数据源。
注意:我可以在SQL管理工作室中执行R脚本。我已经在ODBC数据源(64位)中为SQL Server版本13.00.1300配置了Microsoft ODBC驱动程序。
答案 0 :(得分:0)
进入相同的消息......看起来它只是来自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.
答案 1 :(得分:0)
我刚完成对相同错误消息的故障排除。
“未找到数据源名称,并且未指定默认驱动程序”意味着在连接详细信息中需要包含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管理器并选择/安装与SQL Server兼容的驱动程序。
答案 2 :(得分:-1)
可能你应该在你的文件中创建一个txt文件并保存你的连接字符串,然后你应该使用readLines(&#34;你的连接string.txt&#34;)来读取你的连接字符串 并在您的代码中使用它 为我工作..... 仅供参考,您应该使用高级安全性禁用阻止R来自Windows防火墙....