无法从R连接到sqlite .sqlite3安装在linxu服务器上,并且能够创建/修改。但是R没有连接。
library(dplyr)
library(RSQLite)
> db <- src_sqlite("my_db.sqlite3", create = TRUE)
Error in .local(drv, ...) : Could not connect to database:
unable to open database file
能够从命令行连接到sqlite
@ubuntu:~$ sqlite3
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
这是sessionInfo
sessionInfo() R版本3.2.2(2015-08-14) 平台:x86_64-pc-linux-gnu(64位) 运行于:Ubuntu 14.04.1 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RSQLite_1.0.0 DBI_0.3.1 dplyr_0.4.3
loaded via a namespace (and not attached):
[1] magrittr_1.5 R6_2.1.1 assertthat_0.1 parallel_3.2.2 tools_3.2.2
[6] Rcpp_0.12.1
>
答案 0 :(得分:4)
SQLite是一个文件级数据库,因此引用它需要一个完整的目录路径。否您在何处指定工作目录或文件名中的完整路径。
默认情况下,R将使用getwd()
中包含的当前工作目录。如果此文件夹中未包含数据库,则会出现连接错误。您可以使用setwd()
更改工作目录。
顺便说一句,您引用了这两个包,但使用src_sqlite使用dplyr
包连接到SQLite,而不是使用RSQLite。
RSQLite连接
library(RSQLite)
setwd("/Path/To/Database/Folder")
sqlite <- dbDriver("SQLite")
conn <- dbConnect(sqlite,"my_db.sqlite3")
DPLYR连接
library(dplyr)
setwd("/Path/To/Database/Folder")
db <- src_sqlite("my_db.sqlite3", create = TRUE)
您可能不希望同时调用这两个库以避免相同命名函数的冲突。