启用本地INFILE将数据加载到从轨道远程MySQL [英] Enabling local-infile for loading data into remote mysql from rails

查看:328
本文介绍了启用本地INFILE将数据加载到从轨道远程MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即时通讯使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆