以下代码成功连接到我的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的新手,所以我确信我可能会遗漏一些非常简单的东西......任何帮助都会受到赞赏。
答案 0 :(得分:0)
解决了 - 我是对的;这对我来说非常简单(而且非常非常愚蠢)。我从错误的服务器上运行脚本。我运行它的服务器有一个我试图连接的数据库的空副本,所以一切都成功了,dbListTables的空结果是正确的。一旦我切换了服务器(或者只是在另一台服务器上指定了主机),一切都运转了。
答案 1 :(得分:0)
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)
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)
始终关闭连接