启用local-infile,将数据从rails加载到远程mysql

我使用connection_ninja( https://github.com/cherring/connection_ninja )从我的rails应用程序连接到远程mysql数据库。 我的模型中有一个方法,它使用’load data local infile ..’从运行我的rails app的服务器加载一个csv文件到远程mysql db。

代码如下:

class Product < ActiveRecord::Base @conn = use_connection_ninja(:rl_op) self.table_name = 'RlProduct' def self.update(file_path) sql = "LOAD DATA LOCAL INFILE '#{file_path}' INTO TABLE RlProduct FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' (name,price,productId)" @conn.connection().execute(sql) end end 

这给了我以下错误:

 Mysql2::Error: The used command is not allowed with this MySQL version: LOAD DATA LOCAL INFILE.. 

我在运行我的rails应用程序的服务器的/etc/mysql/my.cnf[mysql]部分设置了local-infile=1 。 如果我直接登录到服务器上的mysql并在那里运行load data local ..命令,这允许我将数据导入远程数据库。

如何为我的rails代码设置local-infile = 1?

将其添加到database.yml

 local_infile: true 

运行此查询的用户应在远程服务器上具有FILE访问权限。