我正在尝试将 R 连接到基于 this 的远程 SQL Server 。我用的是
library(DBI)
conn <- dbConnect(
drv = RMySQL::MySQL(),
dbname = "td",
host = "hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com",
username = "trades",
password = "u#6MS06")
但连接无法正常工作。无法连接到数据库:错误:无法连接到“hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com”上的 MySQL 服务器
(0) 我想念什么?请注意,我在这里不提供真实的凭据。然后我想连接一个名为“rep_user_listings”的表。
安装`ODBC Driver 11 for SQL Server 后,我还使用了:
library(DBI)
conn <- dbConnect(
drv = odbc::odbc(),
driver = "ODBC Driver 11 for SQL Server",
database = "td",
server = "hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com",
uid = "trade",
pwd = "u#6MS06X")
我得到:
Error: nanodbc/nanodbc.cpp:950: 08001: [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53].
和
library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com\\SQLEXPRESS; Database=tdsh;Uid=trade; Pwd=u#6MS06Xv; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from rep_user_listings;"))
odbcClose(dbconnection)
我得到:
Warning messages:
1: In odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com\\SQLEXPRESS; Database=tdsh;Uid=tradeshow; Pwd=u#6MS06Xvdoy; trusted_connection=yes") :
[RODBC] ERROR: state 08001, code -1, message [Microsoft][ODBC Driver 11 for SQL Server]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
2: In odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com\\SQLEXPRESS; Database=tdsh;Uid=tradeshow; Pwd=u#6MS06Xvdoy; trusted_connection=yes") :
[RODBC] ERROR: state HYT00, code 0, message [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired
3: In odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com\\SQLEXPRESS; Database=tdsh;Uid=tradeshow; Pwd=u#6MS06Xvdoy; trusted_connection=yes") :
[RODBC] ERROR: state 08001, code -1, message [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
4: In odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com\\SQLEXPRESS; Database=tdsh;Uid=tradeshow; Pwd=u#6MS06Xvdoy; trusted_connection=yes") :
ODBC connection failed
最佳答案
没有正在开发的 R 原生 SQL Server 客户端,据我所知,最新的 ( https://github.com/imanuelcostigan/RSQLServer ) 已被存档/弃用,以代替 odbc
。包。
试试这个:
library(DBI)
conn <- dbConnect(
drv = odbc::odbc(),
driver = "ODBC Driver 17 for SQL Server",
database = "td",
server = "hmsales.cav7mnk7ifa9.us-west-2.rds.amazonaws.com",
uid = "trades",
pwd = "u#6MS06")
(如果有效,请立即更改您的密码。:-)
我选择了“ODBC Driver 17 for SQL Server”
,因为我之前为我的 Windows 和 Linux 计算机安装了 mssql 驱动程序(当前可用版本 here ),并在此处找到了驱动程序“名称” :
unique(odbc::odbcListDrivers()$name)
# [1] "SQL Server" "PostgreSQL ANSI(x64)"
# [3] "PostgreSQL Unicode(x64)" "SQLite3 ODBC Driver"
# [5] "ODBC Driver 17 for SQL Server"
如果您安装了旧版本(例如 11 或 13)或其他版本,请改用该驱动程序(或升级)。
关于r - 使用 R 连接到远程 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57235301/