从rails中的迁移脚本加载csv时出现问题

时间:2013-07-17 18:47:15

标签: mysql ruby-on-rails load-data-infile

尝试使用以下内容从迁移脚本加载csv时:

ActiveRecord::Base.connection.execute(
    "load data local infile 'my_data.csv' into table my_table fields terminated by ',' lines terminated by '\n' (column1, column2)

我明白了:

Mysql2::Error: The used command is not allowed with this MySQL version: load data local infile....

我已经将相应的设置添加到my.cnf:

[mysqld]
local-infile=1
[mysql]
local-infile=1

如果我从mysql客户端(例如,mysql -uname -p)运行我的“load data local infile”命令,它的效果很好。出于某种原因,在迁移脚本(来自rails)中,它因“不允许使用此MySQL版本”而失败。

1 个答案:

答案 0 :(得分:0)

使用activerecord-fast-import时(基于相同类型的导入查询)我遇到此问题,并发现对于security reasons服务器和客户端需要启用此功能。

服务器确实需要(my.cnf)的设置。要在客户端上启用它,只需将其添加到database.yml

local_infile: true