如錯誤消息所示,您嘗試通過傳遞一個字符向量來連接到您的數據庫。這是行不通的。
一種選擇是使用正確的語法在你的腳本:
library(RMySQL)
mysqlconnection <- dbConnect(RMySQL::MySQL(),
user = 'root',
password = '',
dbname = 'nepal_statgri',
host = 'localhost')
不過,你提到使用RSCRIPT。所以我的理解是,您有興趣擁有一個不存儲連接細節的R文件,而是希望將這些細節作爲來自shell終端的參數傳遞。
要做到這一點的一個選擇是使用包docopt
,它允許您輕鬆地爲您的R腳本創建命令行界面。例如,如果您保存在一個名爲connect_mysql.R
下列文件:
'usage: connect_mysql.R [--user <user> --password <pwd> --db <database> --host <host>]
options:
--user username
--password password
--db database
--host host
' -> doc
library(docopt)
library(RMySQL)
opts <- docopt(doc)
con <- dbConnect(RMySQL::MySQL(),
username = opts$user,
password = opts$password,
dbname = opts$db,
host = opts$host)
dbListTables(con)
dbDisconnect(con)
,那麼你就可以把它用RSCRIPT並通過您的連接細節:
Rscript connect_mysql.R --user root --password password --db nepal_statgri --host localhost
''RMySQL' dbConnect'沒有可以接受這種格式的單個連接字符串的版本。您將不得不在R腳本中解析輸入字符串,或者使用MySQL組。 –
我已經試過這種方式,但結果是一樣的。或者,也許你可以給一個例子嗎? –
查看下面@sinQueso給出的答案,您需要修復您的語法或使用組,RMySQL API不會讓您按照您的想法進行操作。 –