RODBC odbcDriverConnect()连接错误

时间:2013-03-14 21:59:09

标签: sql-server rodbc

我正在尝试使用

odbcDriverConnect('driver={SQL Server};server=servername\instancename,port;database=testing;username=abc;password=123456') 

连接远程数据库服务器(sql server 2008)。但我得到了

  

[RODBC]错误:状态08001,代码17,消息[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SQL Server不存在或访问被拒绝。

错误。有什么想法吗?

我可以用

odbcDriverConnect('driver={SQL Server};server=localhost;database=testing;trusted_connection=true') 

连接我的本地数据库服务器(sql server 2008)。

4 个答案:

答案 0 :(得分:32)

正确的语法应该是:

odbcDriverConnect('driver={SQL Server};server=servername\\instancename,port;database=testing;uid=abc;pwd=123456')

如果您使用Windows身份验证方法:

odbcDriverConnect('driver={SQL Server};server=servername\\\\instancename,port;database=testing;trusted_connection=true')

Slash似乎是一个逃避角色,逃避斜线作品。

答案 1 :(得分:9)

对于Linux版上的SQL Server的Microsoft ODBC驱动程序11,R版本3.0.1中的RODBC版本1.3-7,上述答案均无效。然而,有以下工作是:

dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;
                Server=127.0.0.1; Database=MyDBName; 
                Uid=MyName; Pwd=XXXX")

(输入相关的IP地址,数据库名称等)。

如果是可信连接:

dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;
                Server=127.0.0.1; Database=MyDBName; 
                Uid=MyName; Pwd=XXXX; trusted_connection=yes")

trusted_connection只会听“是”或“否”而不是“真”和“假”

答案 2 :(得分:0)

1.Connet to MySQL

a)如果您的系统中安装了Mysql,如果没有安装它。

b)下载RMySQL IN R

library(RMySQL)

drv = dbDriver("MySQL 5.0.1")

确保MySQL版本正确。

con = dbConnect(drv,host="localhost",dbname="test",user="root",pass="root")

使用本地主机或使用服务器即IP地址

使用所需的数据库名称,用户名和密码

album = dbGetQuery(con,statement="select * from table")

运行必需的查询

close(con)

2.另一种连接数据库的方法

a)首先安装MySQL,Oracle,SQL Server等任何数据库

b)安装数据库的

ODBC连接器

library(Rodbc)

channel <- odbcConnect("test", uid="ripley", pwd="secret")

test是odbc conector的连接名称,用户必须手动设置

用户可以在管理员工具中找到它

res <- sqlFetch(ch, "table name")

可以将表格检索为数据框

res<-sqlQuery(channel, paste("select query"))

with条件的一部分一个表可以作为数据框检索

sqlSave(channel, dataframe)

将数据框保存到数据库中(不要使用“res&lt; - ”这样的东西)

用户可以使用

sqlCopy() sqlDrop()

sqlTables()

close(channel)

始终关闭连接

答案 3 :(得分:-1)

好像您正在尝试连接到SQL Server。该代码段应该有效,对我来说有效:

库(“ RODBC”)

连接<-DBI :: dbConnect(odbc :: odbc(),驱动程序=“ SQL Server”,服务器=“您的服务器名称”,数据库=“您的数据库名称”,UID =“您的数据库名称”,UID =“您的服务器登录名”,PWD =“您的服务器密码”,端口= 1433)

参考:Connecting MS SQL Server via R