R DBI / RPostgreSQL--连接成功但dbListTables不返回表

时间:2013-03-13 02:33:19

标签: r

以下代码成功连接到我的PostgreSQL数据库(或者无论如何似乎),但尝试发出查询时遇到“关系不存在”错误,所以我尝试了dbListTables,它不返回任何表一点都不传递给dbConnect的数据库名称是正确的,表格确实存在。我认为我使用的代码与我最近使用的代码完全相同,后者成功运行。有什么想法吗?

> library(RPostgreSQL)
Loading required package: DBI
> drv <- dbDriver("PostgreSQL")
> con <- dbConnect(drv, dbname="mydb", user="user", password=password)
> dbListTables(con)
character(0)

我是R和DBI的新手,所以我确信我可能会遗漏一些非常简单的东西......任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

解决了 - 我是对的;这对我来说非常简单(而且非常非常愚蠢)。我从错误的服务器上运行脚本。我运行它的服务器有一个我试图连接的数据库的空副本,所以一切都成功了,dbListTables的空结果是正确的。一旦我切换了服务器(或者只是在另一台服务器上指定了主机),一切都运转了。

答案 1 :(得分: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)

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

用户可以使用

sqlCopy() sqlDrop()

sqlTables()

close(channel)

始终关闭连接