启用本地INFILE将数据加载到从轨道远程MySQL [英] Enabling local-infile for loading data into remote mysql from rails
问题描述
即时通讯使用connection_ninja( https://github.com/cherring/connection_ninja )连接到从我的轨道applicaion远程MySQL数据库。我从应用程序运行我的轨到远程MySQL数据库服务器都在我的模型的方法,用它加载一个CSV文件LOAD DATA LOCAL INFILE ...。
Im using connection_ninja (https://github.com/cherring/connection_ninja) to connect to a remote mysql database from my rails applicaion. I have a method in my model which loads a csv file using 'load data local infile..' from the server running my rails app into the remote mysql db.
在code是如下:
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..
我已经设置本地INFILE = 1
在 [MySQL的]
部分 / ETC / mysql的/ my.cnf中
运行我的Rails应用程序的服务器。这使我能够将数据导入到远程数据库,如果我直接到MySQL本地登录服务器并运行加载数据..命令在那里。
I have set local-infile=1
in [mysql]
section of /etc/mysql/my.cnf
of the server running my rails app. And that allows me to import the data into remote db if i directly log in to mysql on the server and run the load data local.. command there.
我如何可以设置本地INFILE = 1为我轨code呢?
How can i set local-infile=1 for my rails code as well ?
推荐答案
这添加到的database.yml
:
local_infile: true
这篇关于启用本地INFILE将数据加载到从轨道远程MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!