我将.sql转储文件形式的数据库结构存储在我的包的配置文件夹中(存储在inst/config
中)。
目前我正在使用需要密码输入的命令行:
cat 'filename.sql' | mysql -p databasename
事实上,我建议用户如何使用此功能加载转储:
loaddbstructure <- function(sqlfile = system.file("config/dump.sql",
package="mypackagename", mustWork = TRUE)){
message("This message gives 2 options to load the database structure.\n\n",
"(1) If a user called 'R' is created in MySQL, you can run this from a shell command line: \n",
sprintf("$ cat '%s' | mysql -u R -p tradeflows", sqlfile),
"\n\n",
"(2) Another option is to call this from a mysql client:\n",
"mysql> connect tradeflows;\n",
sprintf("mysql> source %s;", sqlfile))
}
是否可以使用来自RMySQL的命令以编程方式加载此.sql文件,使用使用~/.my.cnf
中提供的凭据创建的数据库连接?
答案 0 :(得分:0)
将连接凭据添加到~/.my.cnf
中的mysql option file:
[client]
user = R
password = password
然后,您可以使用调用system bash命令的R命令加载数据库转储(特定于Linux):
system("cat 'dump.sql' | mysql databasename")