是否可以使用RMySQL以编程方式加载SQL转储文件?

时间:2017-07-26 16:16:35

标签: mysql r rmysql

我将.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中提供的凭据创建的数据库连接?

1 个答案:

答案 0 :(得分:0)

将连接凭据添加到~/.my.cnf中的mysql option file

[client]
user = R 
password = password

然后,您可以使用调用system bash命令的R命令加载数据库转储(特定于Linux):

system("cat 'dump.sql' | mysql  databasename")