0

以下代码成功连接到我的 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 的新手,所以我确信我可能会遗漏一些非常简单的东西......任何帮助将不胜感激。

4

2 回答 2

0

1.连接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 连接器的连接名称

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

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

可以将表作为数据框检索

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

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

sqlSave(channel, dataframe)

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

喜欢用户可以使用

sqlCopy() sqlDrop()

sqlTables()

close(channel)

总是关闭连接

于 2013-03-17T14:46:56.663 回答
0

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

于 2013-03-13T17:09:18.383 回答