尝试使用以下内容从迁移脚本加载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版本”而失败。
答案 0 :(得分:0)
使用activerecord-fast-import时(基于相同类型的导入查询)我遇到此问题,并发现对于security reasons,服务器和客户端需要启用此功能。
服务器确实需要(my.cnf
)的设置。要在客户端上启用它,只需将其添加到database.yml
:
local_infile: true